我想更改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>
但这两种方式都不起作用。怎么了?
第二个问题是,我可以将库中的一个资源更改为库中的另一个资源吗(我只想将库中也存在的黑色操作溢出按钮更改为白色)。
您可以使用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的情况下使用属性。