我正在我的 Playground Android 应用程序中实现深色主题,并且正在努力将操作栏文本颜色设置为白色。
下面是我的风格和颜色。操作栏的背景遵循 colorPrimary,这很棒。然而,两种颜色(浅色和深色)都是非常深色的颜色,并且希望操作栏文本颜色始终为白色。由于我现在使用 DayNight.NoActionBar 作为父项,因此浅色为黑色,深色为白色。我有几个不同的操作栏实例,因此我不想更改每个单独的实例,而只是在样式中定义它。我该怎么做呢?
样式.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>
夜晚\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>
值\颜色.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>
使用材质主题,您可以使用不同的选项来自定义文本颜色Toolbar
- Use the
android:theme
仅覆盖您的默认值Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:theme="@style/MyThemeOverlay_Toolbar"
...>
and use:
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<!-- color used by the toolbar title -->
<item name="android:textColorPrimary">@color/secondaryColor</item>
<!-- color used by navigation icon and overflow icon -->
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
<com.google.android.material.appbar.MaterialToolbar
style="@style/MyToolbar"
.../>
然后使用materialThemeOverlay
覆盖默认值(需要材质组件库版本 1.1.0):
<!-- Toolbar -->
<style name="MyToolbar" parent="Widget.MaterialComponents.Toolbar">
<item name="materialThemeOverlay">@style/MyThemeOverlay_Toolbar</item>
</style>
<style name="MyThemeOverlay_Toolbar" parent="">
<item name="android:textColorPrimary">@color/secondaryColor</item>
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)