美文网首页
Android PopupMenu基础用法

Android PopupMenu基础用法

作者: 06a5f27268e0 | 来源:发表于2017-05-09 22:48 被阅读2521次

    有这么一个需求,在listview或者recyclerview添加menu,效果图如下:

    image.png

    实现右边三个点的效果有2中方法:
    1、image
    2、通过系统自带的style
    第一种方式不再介绍。
    第二种方式:

    <ImageView
                android:id="@+id/action"
                style="@style/Widget.AppCompat.ActionButton.Overflow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_alignParentRight="true"
                android:theme="?ItemPopupMenuStyle"
                />
    

    核心代码style="@style/Widget.AppCompat.ActionButton.Overflow"
    这样做的好处是,第一省去图片资源,第二是自带系统的一些效果,比如单击波纹。
    android:theme="?ItemPopupMenuStyle"是设置改图标的的样式,一般@style/Widget.AppCompat.PopupMenu即可。

    PopupMenu

    效果图:

    image.png

    基本用法

    private void showPopMenu(View v) {
            mPopupMenu=new PopupMenu(getContext(),v);
            mPopupMenu.inflate(R.menu.menu_music_list_item_action_fragment);
            mPopupMenu.show();
        }
    

    参数View v是指刚才创建的imageview。
    inflate指定显示的menu。

    修改popmenu的背景颜色和字体颜色
    1、在style.xml文件里

    <item name="popupMenuStyle">@style/NightAppTheme.popMenuStyle</item>
    <item name="textAppearanceLargePopupMenu">@style/NightAppTheme.popMenuStyle.textAppearanceLargePopupMenu</item>
    <item name="textAppearanceSmallPopupMenu">@style/NightAppTheme.popMenuStyle.textAppearanceSmallPopupMenu</item>
    
    <style name="NightAppTheme.popMenuStyle" parent="@style/Widget.AppCompat.PopupMenu">
        <item name="android:popupBackground">@drawable/popup_background_material</item>
    </style>
    <style name="NightAppTheme.popMenuStyle.textAppearanceLargePopupMenu" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large">
        <item name="android:textColor">?secondary_text_color</item>
    </style>
    <style name="NightAppTheme.popMenuStyle.textAppearanceSmallPopupMenu" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small">
        <item name="android:textColor">?secondary_text_color</item>
    </style>
    

    通过 popupMenuStyle设置背景颜色。
    通过textAppearanceLargePopupMenutextAppearanceSmallPopupMenu设置字体颜色。

    相关文章

      网友评论

          本文标题:Android PopupMenu基础用法

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