Android:重复内嵌视图的溢出菜单

时间:2015-09-09 08:05:34

标签: android contextmenu

我有一个任务列表,我想在列表的每个项目下面的界面中重复内嵌而不是弹出菜单或上下文菜单。我正在寻找菜单而不是LinearLayout的原因是为了轻松使用“showAsAction”和“ifRoom”。你有什么建议吗?

enter image description here

我尝试过:我创建了一个 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);

2 个答案:

答案 0 :(得分:0)

对于这种情况,请忘记菜单实现。

转到设计师并要求提供3dots图标,将其保存在Button或ImageView中。单击该按钮后,使用ListPopupWindow显示列出选项的视图。设置和适配到ListPopupWindow以创建您的选项。

如果您在线性布局上显示选项(假设有3个选项)以及溢出菜单中的所有其他选项,您可以轻松地执行此操作或根据菜单项计算宽度并将剩余项目移至溢出图标。

希望这有帮助。

干杯。

答案 1 :(得分:0)

使用menus尝试实现的目标无关紧要。创建Activity时会创建菜单。你怎么能重新创建菜单?

我建议您使用以下设计:

1)让list_row_item.xml横向LinearLayout

2)在水平布局中插入四个项目;前三个是你的TextViews,最后一个是ImageButton,并给它三个点菜单的图像。

3)相应地在这些视图中分发weight,以便ImageButton在屏幕上消耗的空间最少。

4)然后你可以简单地在ImageButton上有一个OnClickListener。

5)然后你会想要Layout喜欢这个菜单,所以你需要创建一个Fragment,当用户点击ImageButton时,它会显示出来。 / p>