问题描述
我已经使用androidx首选项库创建了首选项屏幕。问题是,当我单击EditTextPreference时,警报对话框是完全白色的。我猜是因为我在应用程序主题中定义了主文本颜色和辅助文本颜色。那么,如何为自定义警报对话框应用自定义主题?这是当我点击EditTextPreference时对话框的外观:
Style.xml:
document.ready
colors.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/layoutBG</item>
<item name="backgroundColor">@color/layoutMainBG</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/textPrimaryLight</item>
<item name="android:textColorSecondary">@color/textSecondaryLight</item>
</style>
解决方法
我通过在AppTheme中添加这两行来修复它
<item name="colorBackgroundFloating">@color/layoutBG</item>
<item name="android:editTextColor">@color/textPrimaryLight</item>
所以我的新AppTheme看起来像这样
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorAccent</item>
<item name="colorPrimaryDark">@color/layoutBG</item>
<item name="backgroundColor">@color/layoutMainBG</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/textPrimaryLight</item>
<item name="android:textColorSecondary">@color/textSecondaryLight</item>
<item name="colorBackgroundFloating">@color/layoutBG</item>
<item name="android:editTextColor">@color/textPrimaryLight</item>
</style>