【问题标题】:Android PopupMenu opening on wrong positionsAndroid PopupMenu 在错误的位置打开
【发布时间】:2016-11-17 14:03:37
【问题描述】:

我有一个 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) 方法内。

非常感谢任何帮助! ^^

【问题讨论】:

  • 您是否尝试在 onclick 侦听器之前创建弹出窗口并且只在设置按钮的 onClickListener 中调用 popup.show()?
  • @Tushar,不,我没有,它确实成功了!非常感谢 :) 关于为什么会发生的任何可能的解释?
  • 太棒了!你能接受我写的答案吗?

标签: android listview popup position


【解决方案1】:

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

【讨论】:

  • 感谢 Tushar 的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2017-05-10
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多