首页 > 解决方案 > PopupMenu - 如何?

问题描述

我是 android 的初学者,并尝试制作一个在单击 imageView 时弹出菜单的应用程序。实际上它有效,但在右侧弹出,我想在中心。所以,我在网上搜索它并遇到了 ListPopupWindow、PopupWindow 类。我根据我的知识/能力尝试了此类的各种方法,但我无法做到这一点。指导我这样做。这是我的代码

imageview setonclickListener(new View.onclickListener() {
    @Override public void onClick(View view){
        PopupMenu popup = new PopupMenu(Info4 Activity.this, imageview1);
        Menu menu = popup.getMenu();
        for (int i = 0; i < (int) (subjects.size()); i++) {
            val = subjects.get((int) (i));
            menu.add(val);
        }
        popup.show();
    }
});

弹出菜单

标签: androidandroid-popupwindow

解决方案


弹出菜单

如果有空间,弹出窗口将出现在锚点下方,如果没有,则弹出窗口将出现在锚点上方。在您的情况下,锚点是imageView,因此您无法将弹出窗口置于屏幕中心。

弹出窗口

尝试这个:

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               popupWindow.showAtLocation(v, Gravity.CENTER, 0, 0);// here v is any View only needed for WindowToken
        }
    });

其他更好的方法:

也许您可以考虑使用可定制且灵活的DialogFragment


推荐阅读