美文网首页安卓UI
PopupMenu基本使用

PopupMenu基本使用

作者: NoBugException | 来源:发表于2019-04-01 11:02 被阅读2次
    (1)配置Item

    我们可以在res中的menu文件夹中新建一个一个menu文件

    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item
            android:id="@+id/next"
            android:icon="@mipmap/back"
            android:title="菜单一"/>
    
        <item
            android:id="@+id/add"
            android:icon="@mipmap/back"
            android:title="菜单二"/>
    
        <item
            android:id="@+id/detail"
            android:icon="@mipmap/back"
            android:title="菜单三"/>
    
        <item
            android:id="@+id/del"
            android:icon="@mipmap/back"
            android:title="菜单四"/>
    
    </menu>
    
    (2)使用PopupMenu
        // 这里的view代表popupMenu需要依附的view
        PopupMenu popupMenu = new PopupMenu(MainActivity.this, view);
        // 获取布局文件
        popupMenu.getMenuInflater().inflate(R.menu.popup_demo, popupMenu.getMenu());
        popupMenu.show();
        // 通过上面这几行代码,就可以把控件显示出来了
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override public boolean onMenuItemClick(MenuItem item) {
                // 控件每一个item的点击事件
                return true;
            }
        });
        popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
            @Override public void onDismiss(PopupMenu menu) {
                // 控件消失时的事件
            }
        });
    

    加载menu配置,监听popup事件。

    效果如下:

    图片.png
    (3)让图片展示

    采用反射机制,让图片展示出来

        try {
            Field field = popupMenu.getClass().getDeclaredField("mPopup");
            field.setAccessible(true);
            MenuPopupHelper helper = (MenuPopupHelper) field.get(popupMenu);
            helper.setForceShowIcon(true);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    

    效果如下:

    图片.png

    相关文章

      网友评论

        本文标题:PopupMenu基本使用

        本文链接:https://www.haomeiwen.com/subject/kkbmbqtx.html