AndroidでToolbarを使いMenu表示させると、
以下のように文字が見えず空欄のMenuが表示されてしまう。
これはMenuの文字色が白、背景色も白であることが原因だった。
なのでMenuの文字色を調整する方法を記載する。
styleで色を調整する
Theme.xmlに以下の追加設定を加える。
19行目MenuのItemのstyleを適応する設定
23-25行目style定義で、MenuItemを定義。文字色を任意の色に変える
- <resources xmlns:tools="http://schemas.android.com/tools">
- <!-- Base application theme. -->
- <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
- <item name="colorPrimary">@color/app_color_light</item>
- <item name="colorPrimaryVariant">@color/app_color</item>
- <item name="colorOnPrimary">@color/black</item>
- <item name="actionMenuTextColor">@color/black</item>
- <item name="colorSecondary">@color/teal_200</item>
- <item name="colorSecondaryVariant">@color/teal_700</item>
- <item name="colorOnSecondary">@color/black</item>
- <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
- <!-- ToolBar使うためActionBar削除 -->
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- <!-- MenuItemのstyleを設定 -->
- <item name="android:itemTextAppearance">@style/MenuTextAppearance</item>
- </style>
- <!-- 上で設定したMenuItemのstyleを定義(文字色のみ設定) -->
- <style name="MenuTextAppearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
- <item name="android:textColor">@color/teal_200</item>
- </style>
- </resources>
結果こんな感じ
余談
ちなみにToolBarではなく、ActionBarを使ってメニュー表示させると
style調整せずにMenuの色はデフォルトで黒色が割りあったっているので、
ActionBarを使うことを検討してみてもいいと思う。
※ActionBarを使っても、今回のstyle設定をすると文字色は変わるので
色を付けたいときは参考になると思う。
色を付けたいときは参考になると思う。
0 件のコメント:
コメントを投稿