Android:重复与视图内联的溢出菜单
Android: repeat an overflow menu inline with views
我有一个任务列表,我想在界面 的每个列表项下方重复菜单 内联 , 而不是弹出菜单或上下文菜单。我寻找菜单而不是 LinearLayout 的原因是为了轻松使用 "showAsAction" 和 "ifRoom"。你有什么建议吗?
我尝试了什么:我创建了一个 layout/myspecialmenu.xml 并且我使用 addView 将其作为视图包含在每个项目之后!显然没有成功!
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.javacodegeeks.android.menu.MainActivity"
android:id="@+id/mycontextmenu" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:showAsAction="ifRoom"
/>
</menu>
这就是我尝试以编程方式在每个项目之后加载它的方式:
LinearLayout mymenu=(LinearLayout) findViewById(R.id.myspecialmenu);
contents.addView(mymenu);
对于这种情况,只需忘记菜单实现即可。
转到设计器并要求 3dots 图标,将其保存在 Button 或 ImageView 中。单击该按钮后,您可以使用 ListPopupWindow 来显示您列出选项的视图。设置并适配 ListPopupWindow 以创建您的选项。
如果您有固定的选项(假设有 3 个选项)显示在线性布局上,而所有其他选项都显示在溢出菜单中,您可以轻松地做到这一点,或者根据菜单项计算宽度并移动剩余部分项添加到溢出图标。
希望对您有所帮助。
干杯。
您试图使用 menus
实现的目标完全无关紧要。创建 Activity
时会创建菜单。如何重新创建菜单?
我建议你做如下设计:
1) 使 list_row_item.xml
具有 LinearLayout
水平。
2) 在水平布局中插入四个项目;前 3 个是您的 TextViews
,最后一个可能是 ImageButton
,并为其提供三点菜单的图像。
3) 相应地在这些视图中分配 weight
,以便 ImageButton
在屏幕上消耗最少 space。
4) 然后你可以在 ImageButton
上简单地设置一个 OnClickListener。
5) 然后你又会想要 Layout
喜欢菜单,为此你需要创建一个 Fragment
当用户点击 ImageButton
时会显示.
我有一个任务列表,我想在界面 的每个列表项下方重复菜单 内联 , 而不是弹出菜单或上下文菜单。我寻找菜单而不是 LinearLayout 的原因是为了轻松使用 "showAsAction" 和 "ifRoom"。你有什么建议吗?
我尝试了什么:我创建了一个 layout/myspecialmenu.xml 并且我使用 addView 将其作为视图包含在每个项目之后!显然没有成功!
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.javacodegeeks.android.menu.MainActivity"
android:id="@+id/mycontextmenu" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:showAsAction="ifRoom"
/>
</menu>
这就是我尝试以编程方式在每个项目之后加载它的方式:
LinearLayout mymenu=(LinearLayout) findViewById(R.id.myspecialmenu);
contents.addView(mymenu);
对于这种情况,只需忘记菜单实现即可。
转到设计器并要求 3dots 图标,将其保存在 Button 或 ImageView 中。单击该按钮后,您可以使用 ListPopupWindow 来显示您列出选项的视图。设置并适配 ListPopupWindow 以创建您的选项。
如果您有固定的选项(假设有 3 个选项)显示在线性布局上,而所有其他选项都显示在溢出菜单中,您可以轻松地做到这一点,或者根据菜单项计算宽度并移动剩余部分项添加到溢出图标。
希望对您有所帮助。
干杯。
您试图使用 menus
实现的目标完全无关紧要。创建 Activity
时会创建菜单。如何重新创建菜单?
我建议你做如下设计:
1) 使 list_row_item.xml
具有 LinearLayout
水平。
2) 在水平布局中插入四个项目;前 3 个是您的 TextViews
,最后一个可能是 ImageButton
,并为其提供三点菜单的图像。
3) 相应地在这些视图中分配 weight
,以便 ImageButton
在屏幕上消耗最少 space。
4) 然后你可以在 ImageButton
上简单地设置一个 OnClickListener。
5) 然后你又会想要 Layout
喜欢菜单,为此你需要创建一个 Fragment
当用户点击 ImageButton
时会显示.