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でメニューの色が変わるので、タイトル共々変えてしまってタイトルの色はコードで再度指定してしまうと言う方法で解決しました。
もっといい方法を知っていました教えてください。