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 件のコメント:
コメントを投稿