美文网首页
Android控件<第二十篇>:PopupMenu基本使用

Android控件<第二十篇>:PopupMenu基本使用

作者: NoBugException | 来源:发表于2021-09-08 08:21 被阅读0次
(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

相关文章

  • Android控件<第二十篇>:PopupMenu基本使用

    (1)配置Item 我们可以在res中的menu文件夹中新建一个一个menu文件 (2)使用PopupMenu 加...

  • PopupMenu基本使用

    (1)配置Item 我们可以在res中的menu文件夹中新建一个一个menu文件 (2)使用PopupMenu 加...

  • Android PopupMenu 的使用

    Android 轻量化组件 PopupMenu 的使用 估计很多人遇到过这种场景:要求弹出的PopupWindow...

  • Android PopupMenu的使用

    正文 我们在开发过程中,很多时候都会用到PopupMenu PopupMenu:Android轻量化的组件,能够满...

  • Android实现圆角控件

    Android实现圆角控件 在Android开发过程中,控件的使用是最常见、最基本的。但是我们都知道,在Andro...

  • Android开发之基本控件和详解

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动。给控件添加事件也有接口回调和委托代...

  • ObjectAnimator基本使用

    Android自定义控件三部曲文章索引 ObjectAnimator基本使用

  • Android 弹出菜单示例(Android sample AP

    Android 弹出菜单示例# 这个示例展示如何使用PopupMenu来现实和一个弹出的菜单。 说明 这个示例展示...

  • 周记:Class4

    了解Android中常见和控件的使用 android:layout_height:控件的高度 android:la...

  • SeekBar

    Android-SeekBar进度条的使用Android控件与布局——基础控件SeekBar

网友评论

      本文标题:Android控件<第二十篇>:PopupMenu基本使用

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