android - 自定义 AppCompat 主题未更改旧设备上的溢出图标

标签 android icons android-theme android-menu

最近我决定更改我的应用程序中的 Action Overflow Icon。我让它在 Lollipop 设备上运行,但它在我的 Ice Cream Sandwich 和 Kitkat 设备上不起作用。注意:在它不工作的两个设备上,操作溢出图标有 3 个圆点,所以主题正在将它更改为 Material 版本......只是不是我的版本。

我的问题是我无法让它在旧设备上运行,但它在 Lollipop 上运行。

以前,我必须为每个版本创建单独的主题,但现在不需要了。仅推荐一个主题。

代码

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <!--<item name="colorPrimaryLight">@color/primary_light</item>-->
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimaryInverse">@color/primary_text_light</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
        <item name="android:textColorSecondary">@color/secondary_text</item>
        <!--<item name="icons">@color/icons</item>-->
        <item name="divider">@color/divider</item>

    </style>

    <style name="OverflowMenuButton" parent="@style/Widget.AppCompat.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_star_rate_white_18dp</item>
    </style>


</resources>

正确图标

enter image description here

图标不正确

enter image description here

最佳答案

您正在使用 android:actionOverflowButtonStyle,这是替换框架溢出按钮的正确方法,仅适用于 Lollipop 和更高版本的设备。

但是,AppCompat 有自己的 actionOverflowButtonStyle attribute适用于所有 API 7+ 设备 - 您应该使用它代替 android:actionOverflowButtonStyle:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="actionOverflowButtonStyle">@style/OverflowMenuButton</item>

    ...

</style>

关于android - 自定义 AppCompat 主题未更改旧设备上的溢出图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32108027/

相关文章:

android - "...must supply a layout_height..."但它在我的风格资源中?

android - 已安装应用程序但图标未出现在启动器屏幕或应用程序列表中

Android 使用 DDMS 删除文件

javascript - Google Maps Api,自定义标记 anchor

android - 不同 Activity 的 Android 主题问题

java - 错误: No resource found that matches the given name (at 'theme' with value '@style/Theme.Sherlock' )

Android: 为什么在自定义 View 中覆盖 onMeasure() 后, View 的文本无法在 RalativeLayout 中显示?

java - 根据员工字母表(排序)合并两个列表

ios - 无法让应用程序图标在 Xcode 6 中工作

javascript - 使用 jQuery 更改鼠标悬停时的图标