質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

6769閲覧

Android アクションバー、オーバーフローボタンの背景色と文字色の変更方法

hiroppii

総合スコア38

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2017/03/30 05:29

Android アクションバー、オーバーフローボタンの背景色と文字色の変更方法をご存知の方、いらっしゃいましたらご教授いただけると助かります。

オーバーフローボタンとしてメニューアクションが1つにまとめられた状態で使用しているのですが、Style.xmlを変更してもオーバーフローボタン部分だけ色が変わりません。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
uniko

総合スコア448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroppii

2017/03/30 21:29

ご教授頂いた通りにやってみたところ、うまく行きました。 有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問