私の遊び場に暗いテーマを実装していますAndroid=アプリで、アクションバーのテキストの色を白くするのに苦労しています。
以下は私のスタイルと色です。アクションバーの背景はcolorPrimaryに従います。これは素晴らしいことです。ただし、両方の色(明るい色と暗い色)はかなり暗い色であり、アクションバーのテキストの色は常に白にしたいと考えています。現在、DayNight.NoActionBarを親として使用しているため、明るい場合は黒、暗い場合は白になります。アクションバーのインスタンスがいくつかあるので、個別に変更するのではなく、スタイルで定義するだけです。これを行うにはどうすればよいですか?
styles.xml
<style name="DarkThemeApp" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorError">@color/colorError</item>
<item name="Android:textColor">?android:attr/textColorPrimary</item>
</style>
night\colors.xml
<resources>
<color name="colorPrimary">#3d85c6</color>
<color name="colorPrimaryDark">#002e72</color>
<color name="colorAccent">#e66f00</color>
<color name="colorYellow">#FFE800</color>
<color name="colorError">#E53935</color>
</resources>
values\colors.xml
<resources>
<color name="colorPrimary">#00348e</color>
<color name="colorPrimaryDark">#002e72</color>
<color name="colorAccent">#e66f00</color>
<color name="colorYellow">#FFE800</color>
<color name="colorError">#E53935</color>
</resources>
あなたのstyles.xmlでこのコードを使用してください
<style name="DarkThemeApp" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="Android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="Android:titleTextStyle">@style/MyActionBarTitleTextStyle</item>
</style>
<style name="MyActionBarTitleTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="Android:textColor">@color/white</item>
</style>
この質問に対する答えは、アプリで使用する他のコンポーネントによって異なる場合があると思います。私の場合、以下は有効な解決策でした:
これら3つのスタイルをstyles.xml
で定義します
<style name="ToolbarStyle" parent="@style/Widget.MaterialComponents.Toolbar">
<item name="titleTextColor">@Android:color/white</item>
<item name="Android:background">@color/primary</item>
</style>
<style name="ToolbarStyle.Overflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
<item name="Android:tint">@Android:color/white</item>
</style>
<style name="ToolbarStyle.DrawerIcon" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="color">@Android:color/white</item>
</style>
そしてあなたのテーマにそれらを設定します:
<style name="DarkThemeApp" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
<!-- color for stuff in action bar -->
<item name="toolbarStyle">@style/ToolbarStyle</item>
<item name="actionOverflowButtonStyle">@style/ToolbarStyle.Overflow</item>
<item name="drawerArrowStyle">@style/ToolbarStyle.DrawerIcon</item>
<!-- rest of your attributes go here ... -->
</style>