Android アクションバー、オーバーフローボタンの背景色と文字色の変更方法をご存知の方、いらっしゃいましたらご教授いただけると助かります。
オーバーフローボタンとしてメニューアクションが1つにまとめられた状態で使用しているのですが、Style.xmlを変更してもオーバーフローボタン部分だけ色が変わりません。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
私が知っているActionBarの設定ですが記載いたします。
ToolBarを利用している場合ですとまた違います。
また、オーバーフローというのがPopUpMenuクラスであればpopupMenuStyleを設定してください。
サポートライブラリの環境によっては動かない場合がありますので注意してください。
一応、以下で動作確認はしてみました。
appcompat-v7:25.2.0
確認OS 4.0,5.1,6.0
xml
1 2 <style name="AppThemeForActionBar" parent="Theme.AppCompat.Light.DarkActionBar"> 3 4 <item name="colorPrimary">@color/colorPrimary</item> 5 <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 6 <!-- popup menuのチェックボックスにも影響 --> 7 <item name="colorAccent">@color/colorAccent</item> 8 9 10 <!-- actionBarのタイトルや背景を変更 --> 11 <item name="android:actionBarStyle">@style/MyActionBarStyle</item> 12 <item name="actionBarStyle">@style/MyActionBarStyle</item> 13 14 <!-- actionBarのテキストメニューのカラーを変更 --> 15 <item name="android:actionMenuTextColor">@color/actionbarMenuText</item> 16 <item name="actionMenuTextColor">@color/actionbarMenuText</item> 17 18 <!-- actionBarのオーバーフローの画像を変更 --> 19 <item name="android:actionOverflowButtonStyle">@style/MyActionBarOverflowButtonStyle</item> 20 <item name="actionOverflowButtonStyle">@style/MyActionBarOverflowButtonStyle</item> 21 22 23 <!-- popup menu関連 --> 24 <!-- アイテムのテキストカラーを変更 --> 25 <item name="android:itemTextAppearance">@style/MyActionBarMenuTextStyle</item> 26 <!-- 27 アイテムの背景を変更する場合(セレクターとか) 28 <item name="android:itemBackground">@color/itemBackground</item> 29 --> 30 <!-- popup menu自体の背景とか他 --> 31 <item name="android:actionOverflowMenuStyle" tools:ignore="NewApi">@style/MyActionBarOverflowMenu</item> 32 <item name="actionOverflowMenuStyle">@style/MyActionBarOverflowMenu</item> 33 34 </style> 35 36 37 <!-- action bar自体のスタイル --> 38 <style name="MyActionBarStyle" parent="@style/Widget.AppCompat.ActionBar"> 39 <item name="android:titleTextStyle">@style/MyActionBarTitleTextStyle</item> 40 <item name="android:background">@color/actionbarBackGround</item> 41 <item name="android:backgroundStacked">@color/actionbarBackGround</item> 42 <item name="android:backgroundSplit">@color/actionbarBackGround</item> 43 44 <!-- Support library compatibility --> 45 <item name="titleTextStyle">@style/MyActionBarTitleTextStyle</item> 46 <item name="background">@color/actionbarBackGround</item> 47 <item name="backgroundStacked">@color/actionbarBackGround</item> 48 <item name="backgroundSplit">@color/actionbarBackGround</item> 49 </style> 50 51 <!-- action bar title text --> 52 <style name="MyActionBarTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 53 <item name="android:textColor">@color/actionbarTitle</item> 54 <item name="android:textStyle">bold</item> 55 <item name="android:textSize">25sp</item> 56 </style> 57 58 59 <!-- action bar OverflowButton (・・・の所の画像変更)--> 60 <style name="MyActionBarOverflowButtonStyle" parent="@style/Widget.AppCompat.ActionButton.Overflow"> 61 <item name="android:src">@drawable/ic_my_overfrow_menu</item> 62 </style> 63 64 <!-- action bar OverflowMenu内のテキスト --> 65 <style name="MyActionBarMenuTextStyle" parent="style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 66 <item name="android:textColor">@color/actionbarPopUpText</item> 67 <item name="android:textStyle">bold</item> 68 <item name="android:textSize">25sp</item> 69 </style> 70 71 <!-- action bar overflowMenu --> 72 <!-- Widget.AppCompat.PopupMenu.Overflowだと背景が黒くなるのでToolbarと同様にThemeOverlay.AppCompat.ActionBarを --> 73 <style name="MyActionBarOverflowMenu" parent="ThemeOverlay.AppCompat.ActionBar"> 74 75 <!-- popupの背景色 --> 76 <item name="android:popupBackground">@color/actionbarPopUpBackground</item> 77 78 <!-- menuボタンにかぶせないようにする場合。 --> 79 <item name="overlapAnchor">false</item> 80 <item name="android:overlapAnchor" tools:targetApi="lollipop">false</item> 81 </style> 82
説明に関しては簡単で申し訳ないですがコメントに記載しましたのでお読みいただき必要な箇所をお試しください。color等のリソースはご自身のほうで好きに変えたり、合わせてください。
なお、実際には適宜対応するapiレベルに切り分けて(values-v21等)、各styleに設定したほうがよいです。
こちらも一応記載しますがActionBarでは端末側に物理メニューボタンがある場合はoverflowボタン(「・・・」の奴)はでないと思いますのでご注意を。
その場合は上のpopup用のスタイルは効きません。
投稿2017/03/30 10:51
編集2017/03/30 12:31総合スコア448
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/30 21:29