Android PopupMenu 在错误的位置打开

Android PopupMenu opening on wrong positions

我有一个 listView,其中每个项目都有一个按钮,可以打开带有选项的 PopupMenu。

大多数时候,这些菜单在错误的位置打开(有时它们在正确的位置打开),这些随机打开甚至不一致。

在菜单中选择一个选项确实操作了我最初尝试打开菜单的位置上的正确项目

我的代码:

settings.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            PopupMenu popup = new PopupMenu(context, settings);
            popup.getMenuInflater().inflate(R.menu.notes_menu, popup.getMenu());
            popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                public boolean onMenuItemClick(MenuItem item) {

                    String itemTitle = item.getTitle().toString();

                    switch (itemTitle) {

                        case "Add Pictures": 

                            //adding pictures

                        case "Delete":

                            //deleting

                        case "Share":

                            //sharing

                    }

                    return true;
                }
            });

            popup.show(); 


        }
    });

settings 按钮位于我的 listView 适配器的 public View getView(final int position, View convertView, ViewGroup parent) 方法内。

非常感谢任何帮助! ^^

在设置 onClickListener 之前创建弹出窗口,并且只在 onClick() 中调用 popup.show()。