使用appcompat v21更改actionOverflowButtonStyle

Ant*_*vin 5 android android-appcompat android-actionbar material-design android-support-design

我想更改我的动作溢出按钮图标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>
Run Code Online (Sandbox Code Playgroud)

或者这样:

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

Gab*_*tti 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>
Run Code Online (Sandbox Code Playgroud)

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

  • 我正在使用我的主题`parent ="@ style/Theme.AppCompat.Light.DarkActionBar"`并且重写OverFlow按钮没有效果:( (3认同)
  • “没有android名称空间”为我做到了! (2认同)
  • 您可以通过应用色调来更改颜色:`&lt;style name="actionOverflowButtonStyle" parent="@style/Widget.AppCompat.ActionButton.Overflow"&gt; &lt;item name="tint"&gt;@color/White&lt;/item&gt; &lt; /样式&gt;` (2认同)