LoginSignup
0
0

More than 3 years have passed since last update.

Toolbarのメニューの文字の色だけ変える方法

Posted at

AndroidのToolbarのメニューの文字の色を変える方法でうまくいく方法が見つからなかったのでメモです。

やりたいこと

こんな感じのことがやりたかった。

やり方

styles.xmlに以下を記述

styles.xml
    <style name="BaseToolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="android:theme">@style/ToolbarTheme</item>
    </style>

    <style name="ToolbarTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Toolbar Title Color-->
        <item name="android:textColorPrimary">@color/blue</item>
    </style>

追加したstyleをtoolbarに適用

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    style="@style/BaseToolbar"
    app:layout_scrollFlags="enterAlways" />

ここまでで、タイトルとメニューの色が変わるのでこんな感じになります。

最後に、タイトルの文字の色を変えます。
Fragmentで

toolbar.setTitleTextColor(this.resources.getColor(R.color.black))

を記述すればタイトルだけ色が変わるので目的達成です。

ハマったこと

ググって出てくるのは、

    <style name="BaseToolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="android:theme">@style/ToolbarTheme</item>
    </style>

    <style name="ToolbarTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Toolbar Title Color-->
        <item name="android:textColorPrimary">@color/black</item>
        <!-- Toolbar menu overflow icon color -->
        <item name="android:textColorSecondary">@color/blue</item>
    </style>

みたいな古い情報ばかりでした。
textColorSecondaryの内容がメニューの色に反映されるってことでした。
ただ、実際は、戻るの矢印に反映されてしまい、メニューはtextColorPrimaryの色でした。

解決方法

textColorPrimaryでメニューの色が変わるので、タイトル共々変えてしまってタイトルの色はコードで再度指定してしまうと言う方法で解決しました。

もっといい方法を知っていました教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0