Actionbar 溢出菜单背景色设置

Actionbar 溢出菜单背景色设置_第1张图片


效果如图:

style代码如下:

<resources>

    <style name="Theme.Example" parent="@style/Theme.AppCompat.<span style="color:#ff0000;">Light</span>"></style>

    <style name="AppTheme" parent="Theme.Example">

        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        <!-- <item name="android:itemBackground">@drawable/selectable_background_example</item> -->
        <!-- item背景色 黄色-->
        <item name="android:itemBackground">#ffff00</item>
        <!-- list背景色(分割线颜色)红色 -->
        <item name="android:popupMenuStyle">@style/PopupMenu.Example</item>
        <item name="popupMenuStyle">@style/PopupMenu.Example</item>
    </style>

    <style name="PopupMenu.Example" parent="@style/Widget.AppCompat.Light.PopupMenu">

        <!-- <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item> -->
        <item name="android:popupBackground">#ff00ff</item>
    </style>

</resources>


同时推荐一个在线的actionbar样式生成工具:

http://jgilfelt.github.io/android-actionbarstylegenerator/

DEOM地址:http://download.csdn.net/detail/luohaowang320/7688681


今天在进行代码移植的时候发现,在高版本的机器上,显示的样式,与定制的有区别,期望的是如上图,但实际的是如下图:

Actionbar 溢出菜单背景色设置_第2张图片


popupMenu背景颜色(已经改成红色) 与actionbar 的背景色(主题是Light)任然为 黑色,why?通过对比发现,问题出现在 /res/values-v14 下面的style文件上,系统在api14版本以上的默认样式如下:

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.<span style="color:#ff0000;">Light.DarkActionBar</span>">
        <!-- API 14 theme customizations can go here. -->
   
    </style>

</resources>
 默认的是黑色主题,而在这个主题下,在application theme下面改popupMenu的背景色无效,即使在这个appBaseTheme 下改popupMenu的背景色依旧无效,此时要实现前面的效果,需要将 values-14 下面的 style文件的 

parent="Theme.AppCompat.Light.DarkActionBar"

改为

parent="Theme.AppCompat.Light"

Light 主题,字体默认是黑色,溢出菜单的字体也是黑色,将溢出菜单的字体改为白色:

在application theme下配置:

        <!-- 溢出菜单 字体颜色 -->
        <!--  高版本api 上,需要这样设置,否则没效果-->
        <item name="android:textAppearanceLargePopupMenu">@style/CustomActionBarTextStyle</item>
        <!-- 第版本api-->
        <item name="textAppearanceLargePopupMenu">@style/CustomActionBarTextStyle</item>


<style name="mPopupMenuTextStyle" parent="@style/TextAppearance.Widget.AppCompat.ExpandedMenu.Item">
        <item name="android:textColor">@android:color/white</item>
    </style>



你可能感兴趣的:(Actionbar 溢出菜单背景色设置)