使用appcompat v21更改actionOverflowButtonStyle

时间:2014-10-20 22:22:35

标签: android android-actionbar material-design android-appcompat

我想更改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>

但两种方式都不起作用。那有什么不对?

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

1 个答案:

答案 0 :(得分:18)

您可以使用此样式(或Theme.AppCompat.Light.NoActionBar):

<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的属性。