修改基于Android Q 使用的是 androidx.preference.PreferenceFragmentCompat
使用Preference的时候,有时会发现字体颜色变白色,看不见了。这是因为应用的主题颜色,背景颜色改变了,Preference颜色按照白色风格展示,此时可以修改Avtivity layout的背景来让Preference展示。
如图
默认是这样的
修改应用主题后可能会这样,字体白色,背景白色,看不到字了
PreferenceScreen 里的preference 无法直接定义颜色,如果Avtivity 就是要白色背景的话,可以修改,Preference Activity的Theme
可以使用默认设置的Theme
<style name="SettingsPreferencesTheme" parent="@android:style/Theme.DeviceDefault.Settings"/>
也可以通过修改colorForeground 来改变显示的颜色
像这样
<style name="SettingsPreferencesTheme" parent="BaseTheme">
<item name="android:windowBackground">@color/bgWhite</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:colorForeground">@color/tintBlack</item>
</style>
Prefenence 点击后的弹窗背景通过修改colorBackgroundFloating,可以改变颜色
<item name="colorBackgroundFloating">@color/bgWhite</item>
Prefenence 的 ListPreference item 的字体颜色,通过修改textColorAlertDialogListItem可以改变
<item name="textColorAlertDialogListItem">@color/fontBlack</item>