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>

しかし、どちらの方法も機能しません。何が問題なのですか?

そして2番目の質問は、あるリソースをライブラリから別のリソースに変更できるかということです(ライブラリにも表示される黒いアクションオーバーフローボタンを白に変更したいだけです)。

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 名前空間なしで属性を使用する必要があります。

于 2014-10-21T06:13:04.400 に答える