ListPreference 列表选项文本颜色
ListPreference list option text color
我正在尝试设置 ListPreference 对话框的样式以适应深色主题,并使用我的代码指定的强调色。但是,无论我添加什么属性,每个选项的文本颜色似乎都没有改变。有没有一种方法可以做到这一点而不必创建我自己的对话框 class?
P.s。我已经尝试过这个答案中给出的解决方案:
不,它确实 not 似乎有效。
这是来自 styles.xml 的必需代码:(不是全部代码,但这是我需要展示的全部)
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="dialogPreferenceStyle">@style/DialogBoxTheme</item>
<item name="listDividerAlertDialog">@style/DialogBoxTheme</item>
<item name="alertDialogStyle">@style/DialogBoxTheme</item>
<item name="alertDialogTheme">@style/DialogBoxTheme</item>
</style>
<style name="DialogBoxTheme" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<item name="android:layout_centerHorizontal">true</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_width">320dp</item>
<item name="android:layout_height">200dp</item>
<item name="android:layout_marginStart">16dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:textColorPrimary">@color/colorPrimary</item>
<item name="android:textColorSecondary">@color/colorPrimary</item>
<item name="android:textColorHint">@color/Silver</item>
<item name="android:textColorTertiary">@color/colorAccent</item>
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:background">@color/cpWhite</item>
<item name="textColorAlertDialogListItem">@color/colorPrimary</item>
<item name="android:textColorAlertDialogListItem">@color/colorPrimary</item>
</style>
(请注意,我已将 colorPrimary 和 colorAccent 设置为随主题变化)
这是它给出的输出:
ListPreference Dialog appearance
回答我自己的问题:
我忘了添加属性
<item name="android:alertDialogTheme">@style/DialogBoxTheme</item>
到 styles.xml 中的 AppTheme。
我正在尝试设置 ListPreference 对话框的样式以适应深色主题,并使用我的代码指定的强调色。但是,无论我添加什么属性,每个选项的文本颜色似乎都没有改变。有没有一种方法可以做到这一点而不必创建我自己的对话框 class?
P.s。我已经尝试过这个答案中给出的解决方案:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="dialogPreferenceStyle">@style/DialogBoxTheme</item>
<item name="listDividerAlertDialog">@style/DialogBoxTheme</item>
<item name="alertDialogStyle">@style/DialogBoxTheme</item>
<item name="alertDialogTheme">@style/DialogBoxTheme</item>
</style>
<style name="DialogBoxTheme" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<item name="android:layout_centerHorizontal">true</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_width">320dp</item>
<item name="android:layout_height">200dp</item>
<item name="android:layout_marginStart">16dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:textColorPrimary">@color/colorPrimary</item>
<item name="android:textColorSecondary">@color/colorPrimary</item>
<item name="android:textColorHint">@color/Silver</item>
<item name="android:textColorTertiary">@color/colorAccent</item>
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:background">@color/cpWhite</item>
<item name="textColorAlertDialogListItem">@color/colorPrimary</item>
<item name="android:textColorAlertDialogListItem">@color/colorPrimary</item>
</style>
(请注意,我已将 colorPrimary 和 colorAccent 设置为随主题变化)
这是它给出的输出: ListPreference Dialog appearance
回答我自己的问题: 我忘了添加属性
<item name="android:alertDialogTheme">@style/DialogBoxTheme</item>
到 styles.xml 中的 AppTheme。