PopupMenu 未在 RecyclerView 中正确定位
PopupMenu is not positioned properly inside RecyclerView
我正在制作一个 Android 应用程序来将数据加载到 RecyclerView 中,其中的 ImageView 作为溢出按钮。当用户单击它时,会显示一个带有可供选择的选项的 PopupMenu。我设法展示了它,但位置似乎不对。请看截图。
只有前两项似乎没问题。以下是源代码:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu popupMenu = new PopupMenu(context, view);
final Menu menu = popupMenu.getMenu();
popupMenu.getMenuInflater().inflate(R.menu.menu_item_action, menu);
popupMenu.setOnMenuItemClickListener(onMenuItemClickListener);
switch (Global.listMode) {
case Global.LIST_STYLE_NORMAL: {
menu.findItem(R.id.action_delete).setVisible(false);
break;
}
case Global.LIST_STYLE_FAVORITE: {
menu.findItem(R.id.action_add_to_favorite).setVisible(false);
break;
}
case Global.LIST_STYLE_WATCH_LIST: {
menu.findItem(R.id.action_add_to_watch_list).setVisible(false);
break;
}
case Global.LIST_STYLE_DOWNLOAD: {
menu.findItem(R.id.action_download).setVisible(false);
break;
}
}
itemPosition = (int) view.getTag(R.id.tag_item_position);
popupMenu.show();
}
});
你们能指出我的问题吗,我花了几个小时搜索但现在仍然一无所获。
P/S: 被点击的按钮用红色圆圈标记。
如有任何帮助,我们将不胜感激!
我不太确定,但似乎讨论了类似的问题
并且已经有一个可接受的答案。希望它能帮助您解决问题。只是偶然发现了您的问题并看到了 link 中讨论的主题,并认为它可能对您也有帮助。
幸运的是,我刚刚找到了解决问题的方法:
- 使用
android.widget.PopupMenu
而不是 android.support.v7.widget.PopupMenu
- 将
final PopupMenu popupMenu = new PopupMenu(context, view);
替换为final PopupMenu popupMenu = new PopupMenu(context, v);
老实说,我不知道为什么,试试吧,瞧!
我正在制作一个 Android 应用程序来将数据加载到 RecyclerView 中,其中的 ImageView 作为溢出按钮。当用户单击它时,会显示一个带有可供选择的选项的 PopupMenu。我设法展示了它,但位置似乎不对。请看截图。
只有前两项似乎没问题。以下是源代码:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu popupMenu = new PopupMenu(context, view);
final Menu menu = popupMenu.getMenu();
popupMenu.getMenuInflater().inflate(R.menu.menu_item_action, menu);
popupMenu.setOnMenuItemClickListener(onMenuItemClickListener);
switch (Global.listMode) {
case Global.LIST_STYLE_NORMAL: {
menu.findItem(R.id.action_delete).setVisible(false);
break;
}
case Global.LIST_STYLE_FAVORITE: {
menu.findItem(R.id.action_add_to_favorite).setVisible(false);
break;
}
case Global.LIST_STYLE_WATCH_LIST: {
menu.findItem(R.id.action_add_to_watch_list).setVisible(false);
break;
}
case Global.LIST_STYLE_DOWNLOAD: {
menu.findItem(R.id.action_download).setVisible(false);
break;
}
}
itemPosition = (int) view.getTag(R.id.tag_item_position);
popupMenu.show();
}
});
你们能指出我的问题吗,我花了几个小时搜索但现在仍然一无所获。
P/S: 被点击的按钮用红色圆圈标记。
如有任何帮助,我们将不胜感激!
我不太确定,但似乎讨论了类似的问题
幸运的是,我刚刚找到了解决问题的方法:
- 使用
android.widget.PopupMenu
而不是android.support.v7.widget.PopupMenu
- 将
final PopupMenu popupMenu = new PopupMenu(context, view);
替换为final PopupMenu popupMenu = new PopupMenu(context, v);
老实说,我不知道为什么,试试吧,瞧!