Android菜鸟的成长笔记——PopupMenu使用

先弹出一个PopupMenu

在控件的回调函数中加入代码:
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.main, popup.getMenu());
        popup.show();

图标不显示,加点代码

PopupMenu popup = new PopupMenu(this, v);
        try {
            Field field = popup.getClass().getDeclaredField("mPopup");
            field.setAccessible(true);
            MenuPopupHelper mHelper = (MenuPopupHelper) field.get(popup);
            mHelper.setForceShowIcon(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.main, popup.getMenu());
        popup.show();

换个背景

首先呢,定义一个style:

<style name="MyPopupMenu" >
        <item name="android:popupBackground">#50f500</item>
    </style>
在AppThem中,加上如下代码(有android:存在,定义的样式就不起作用):

<item name="popupMenuStyle">@style/MyPopupMenu</item>
背景就改成上面的颜色了。

改一下字体样式

先定义一个:

<style name="MyTextAppearance">
        <item name="android:textColor">#ffffff</item>
        <item name="android:textSize">20sp</item>
    </style>
在AppThem中,加上如下代码:

<item name="textAppearanceSmallPopupMenu">@style/MyTextAppearance</item>
<item name="textAppearanceLargePopupMenu">@style/MyTextAppearance</item>
这两个总有一个会起作用。

加个分割线

先定义一个样式:
    <style name="MyListViewStyle">
        <item name="android:divider">#F00</item>
        <item name="android:dividerHeight">1px</item>
    </style>
在AppThem中,加上如下代码:
 <item name="android:dropDownListViewStyle">@style/MyListViewStyle</item>
分割线就有了






你可能感兴趣的:(Android菜鸟的成长笔记——PopupMenu使用)