8

我想更改我的Toolbar(或者ActionBar,没关系)中的操作溢出按钮图标。

所以我走这条路:

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
</style>

<style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_custom</item>
</style>

或者这样:

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="toolbarStyle">@style/AppTheme.ToolbarStyle</item>
</style>

<style name="AppTheme.ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
    <item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
</style>

<style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_custom</item>
</style>

但两种方式都行不通。那里有什么问题?

第二个问题是我可以将库中的一个资源更改为库中的另一个资源(我只想将黑色操作溢出按钮更改为白色,它也出现在库中)。

4

1 回答 1

23

actionOverflowButtonStyle您可以使用该属性在应用主题中定义溢出图标。

使用材料组件主题

<style name="AppTheme.Base" parent="Theme.MaterialComponents.DayNight">
    <item name="actionOverflowButtonStyle">@style/OverFlow</item>
</style>

<style name="OverFlow" parent="Widget.AppCompat.ActionButton.Overflow">
    <item name="srcCompat">@drawable/my_overflow_menu</item>
</style>

使用AppCompat 主题

<style name="AppTheme" parent="Theme.AppCompat.Light">  
   <item name="actionOverflowButtonStyle">@style/OverFlow</item>
</style>

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

使用 appcompat,您必须使用没有 android namaspace 的属性。

于 2014-10-21T06:13:04.400 回答