最近,我决定在我的应用程序上更改Action Overflow Icon。我可以在Lollipop设备上使用它,但不能在Ice Cream Sandwich和Kitkat设备上使用它。注意:在两个无法使用的设备上,动作溢出图标都有3个圆角,因此主题将其更改为“材质”版本。

我的问题是我无法在较旧的设备上使用它,但在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>


正确的图标



图标不正确

最佳答案

您正在使用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>

07-24 09:49
查看更多