如何修改Settings及其他应用的Header文本颜色(API 33)
解决Overlay Theme中ActionBar/Header标题文本颜色不生效的问题
针对API 33下Settings、Wallpaper Picker这类系统应用的ActionBar/Header标题颜色无法修改的问题,试试下面这些方案:
方案1:覆盖ActionBar/Toolbar专属的标题颜色属性
系统应用的ActionBar标题通常用专门属性控制,在你的主题里添加:
<!-- 原生ActionBar标题文本样式 --> <item name="android:actionBarTitleTextStyle">@style/CustomActionBarTitle</item> <!-- 适配用Toolbar替代ActionBar的场景 --> <item name="android:toolbarTitleTextColor">#ffffff</item>
然后补充对应的样式定义:
<style name="CustomActionBarTitle" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"> <item name="android:textColor">#ffffff</item> </style>
方案2:覆盖系统主题的核心文本颜色属性
有些系统应用会依赖textColorPrimary的变体,直接添加这些属性试试:
<item name="android:textColorPrimary">#ffffff</item> <item name="android:textColorPrimaryVariant">#ffffff</item> <!-- 适配深色主题场景 --> <item name="android:textColorPrimaryInverse">#ffffff</item>
方案3:针对Settings应用的专属属性
Settings有自己的标题颜色属性,直接覆盖它:
<item name="android:settingsHeaderTextColor">#ffffff</item>
额外提示
- 确保你的Overlay主题继承了正确的父主题,比如针对Settings应用,父主题应该是
@android:style/Theme.DeviceDefault.Settings - API 33部分应用用了Material You,可尝试覆盖这个属性:
<item name="android:colorOnSurface">#ffffff</item>
内容的提问来源于stack exchange,提问作者Reader Gang
相关产品推荐
相关产品推荐

