PopupMenu在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(); } }); 

你们可以指出我的问题,我花了几个小时搜索,但现在仍然没有find任何东西。

P / S:点击的按钮标有红色圆圈。

任何帮助将不胜感激!

幸运的是,我刚刚find了解决问题的方法:

  • 使用android.widget.PopupMenu而不是android.support.v7.widget.PopupMenu
  • 替换final PopupMenu popupMenu = new PopupMenu(context, view); final PopupMenu popupMenu = new PopupMenu(context, v);

老实说,我不知道为什么,只是尝试一下,瞧!

我不太确定,但似乎这里有一个类似的问题,它已经有了一个公认的答案。 希望它能帮助您解决问题。 只是偶然发现了你的问题,看到链接中讨论的主题,并认为它也许对你有所帮助。