如何在指定地点打开上下文菜单,如下图所示。该应用程序是doubleTwistPlayer - 请参阅Play Store
单击它本身打开上下文菜单,而不是上下文菜单对话框
已经尝试过了
menu_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/itemApplyNew"
android:title="@string/applyNew"/>
<item android:id="@+id/itemAppliedLeaves"
android:title="@string/appliedLeaves"/>
</menu>
list_item.xml(因为我想在列表中实现此功能)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<!-- <RelativeLayout
android:id="@+id/relUpperBody"
android:background="@color/listViewTopContentBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"> -->
<TextView
android:id="@+id/txvLeaveName"
style="@style/ListViewItemHeaderText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="sdfsdfsd" />
<TextView
android:id="@+id/txvBalanceLeave"
style="@style/ListViewItemHeaderText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/imgLeaveAction"
android:text="dsfgd" />
<!-- </RelativeLayout> -->
<TextView
android:id="@+id/txvAllottedLbl"
style="@style/ListViewItemTextSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/txvLeaveName"
android:layout_marginTop="15dp"
android:text="@string/allotted" />
<TextView
android:id="@+id/txvAllottedLeave"
style="@style/ListViewItemTextSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txvBalanceLeave"
android:layout_alignBaseline="@+id/txvAllottedLbl"
android:text="sgsdg" />
<ImageView
android:id="@+id/imgLeaveAction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/ellipsis_menu_overflow" />
<小时/> 的问题
答案 0 :(得分:2)
您需要使用PopupMenu
弹出式菜单
弹出菜单显示垂直列表中的项目列表,该列表锚定到调用菜单的视图。这对你有好处 提供与特定内容相关的动作溢出或 为命令的第二部分提供选项。弹出窗口中的操作 菜单不应该直接影响相应的内容 - 这就是什么 上下文行为是为了。相反,弹出菜单用于扩展 与您活动中的内容区域相关的操作。
有关实施它的更多信息here。
答案 1 :(得分:1)
我认为这是一个ListPopupWindow,您需要做的就是从列表适配器创建一个回调到您的片段/活动,并将回调中的单击视图作为参数传递,并使用ListPopupWindow将锚点设置为视图你已经通过,你可以创建自己的自定义适配器并将其设置为ListPopupWindow并传递要在弹出窗口中显示的项目列表,希望这会有所帮助。
答案 2 :(得分:0)
使用弹出菜单。 Android弹出菜单显示锚文本下方的菜单(如果空间可用,否则在锚文本上方)。如果在弹出菜单外单击,它就会消失。
检查它:http://www.javatpoint.com/android-popup-menu-example