アクションバーのオーバーフローアイコンを変更することはできますか?すべてのActionBarアイテムに青いアイコンがあり、オーバーフローアイコンが表示されたときに変更したいです。
スタイルは使用できますが、メインのテーマ宣言に追加する必要があります。
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@Android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="Android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
<item name="Android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
また、動的に変更することもできます。詳細については、ここで説明します。
動作しない場合は、「Android:」名前空間なしでこれを試してください。
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
styles.xml
で何をしようとしても、解決策はありませんでした。最後に、AppCompat 23+がある場合、これが実際に動作する最も簡単な方法です。
toolbar.setOverflowIcon(drawable);
Styles.xmlのActionbarのカスタムオーバーフローアイコンを変更します。
<resources>
<!-- Base application theme. -->
<style name=“MyTheme" parent="@Android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="Android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
<item name="Android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
AndroidManifest.xmlのアプリケーションタグにカスタムテーマ「MyTheme」を配置します
<application
Android:name="com.example.Android.MainApp"
Android:theme="@style/AppTheme">
</application>
楽しんで。@。@
@ adneal's answer は正しい(したがって、これはコミュニティwikiの説明にすぎません)。
コメントの1つは、これを行う方法を誤解している可能性があることを示唆しているので、私の答えは、オーバーフローアイコン画像をオーバーライドする方法の別の例にすぎません。
以下のコードは、ADTサンプルNew Android Projectのテンプレートスタイルに基づいています。コードは、styles.xml
フォルダーのres/values
ファイルから取得されます。
<style name="AppBaseTheme" parent="Android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="Android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
<item name="Android:src">@drawable/ic_menu_moreoverflow</item>
</style>
上記のコードは、デフォルトのオーバーフローアイコンを、ic_menu_moreoverflow
という名前のドローアブルに置き換えます。簡単にテストする方法が必要な場合は、アプリのランチャーアイコンのファイル名を使用してください。
ActionBar
スタイリングを理解しようとするときに使用する便利なリソースは次のとおりです。
そこで、オーバーフローアイコンに使用する特定の色を定義できます。Zipファイルには、正しいstyles.xml
ファイルが含まれます。
長い検索の後、私が従うべきガイダンスを得たもの:
Theme.xmlのテーマ内にアイテムを追加します。
<item name="Android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="Android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Theme.xmlを意味する同じファイル内のスタイルにアイコンを追加します。
<style name="MyActionButtonOverflow" parent="Android:style/Widget.Holo.ActionButton.Overflow">
<item name="Android:src">@drawable/icon_menu</item>
</style>
変更するカスタムアイコンを確認します
それは私のために働いた
オーバーフローアイコンの色を変更するには、追加するだけです
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
または
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
アイコンを変更し、好きな色を選択して、Overflowiconとして設定します。