Android. PreferenceActivity. ListPreference. 我如何更改ListPreference的背景颜色?

5
实现“夜间主题”。我不知道如何更改ListPreference的背景颜色。 PreferenceActivity“日”主题 PreferenceActivity夜间主题 如您所见,仅选择了“夜间”颜色的标题颜色。
我使用以下主题:
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:textColor">@color/primary_text</item>
    <item name="android:textColorSecondary">@color/secondary_text</item>
    <item name="toolbarStyle">@style/Toolbar</item>
    <item name="android:windowBackground">@color/background_window</item>
    <item name="preferenceTheme">@style/SettingsFragmentStyle</item>
    <item name="colorControlNormal">@color/icons</item>
</style>

<style name="SettingsFragmentStyle" parent="@style/PreferenceThemeOverlay.v14.Material">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="android:textColorPrimary">@color/primary_text</item>
    <item name="android:textColorSecondary">@color/secondary_text</item>
    <item name="android:textColorTertiary">@color/accent</item>
    <item name="android:background">@color/background_window</item>
</style>

哪些参数对应以下功能:

  1. 背景 ListPreference;
  2. 文本颜色 ListPreference 项;
  3. 颜色“开关”ListPreference - 我想将其替换为“强调”颜色(在我的情况下为橙色)。

感谢您的帮助。

2个回答

3
首先,为您的对话框创建一个样式。 对话框样式
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:colorBackground">#1E1E1E</item>
<item name="android:textColorSecondary">#D8D8D8</item>
<item name="textColorAlertDialogListItem">#D8D8D8</item>
<item name="color">#80CBC4</item>

然后在主样式中设置对话框风格

<style name="AppNight" parent="Theme.AppCompat.DayNight.DarkActionBar">

    <item name="alertDialogTheme">@style/DialogTheme</item>
</style>

AppNight是我的夜间主题,我没有提及其他属性以减少代码量。

请点击此处查看外观效果


1
你可以将以下代码添加到styles.xml中的暗色主题中。它还会改变对话框的显示方式,使其成为独立页面而不是卡片样式。
<item name="android:alertDialogTheme">@style/ThemeOverlay.AppCompat.Dark</item>

之前

之后

否则你需要制作一个自定义警告对话框,尝试这个如何更改AlertDialog的主题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接