Измените цвет текста ActionBar после наследования Theme.AppCompat.DayNight
Реализую поддержку темного режима. Но после того, как я изменил родительскую тему Theme на Theme.AppCompat.DayNight, текст на панели действий стал черным (черный в дневном режиме и белый в темном режиме). Я хочу, чтобы текст всегда был белым. Я попытался изменить цвет текста в styles.xml (значения и значения-ночь)
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<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>
Но это не работает. Цвет текста заголовка в Action Bar по-прежнему черный.
3 ответа
Используя ActionBar в своей теме, вы должны использовать actionBarStyle
атрибут:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<item name="actionBarStyle">@style/....</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="titleTextStyle">@style/...</item>
</style>
Если вы используете Toolbar
API, вы также можете использовать
<Toolbar
app:titleTextColor="@color/...."
../>
Вместо этого с библиотекой компонентов материала и Toolbar
API вы можете использовать:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="toolbarStyle">@style/my_Toolbar</item>
</style>
<style name=my_Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
<item name="titleTextColor">@color/...</item>
</style>
Лучшее и простое решение - ответ @MagogCZ =>
"работает на меня <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
" - MagogCZ
нужно использовать
actionBarTheme
и нет
actionBarStyle
для текста Цвет