Android系统。 PreferenceActivity。 ListPreference。如何更改ListPreference的背景颜色?

时间:2016-04-03 18:04:23

标签: android background android-preferences preferenceactivity listpreference

实施"夜晚主题"。我不知道如何更改ListPreference的背景颜色。

PreferenceActivity "day" theme

PreferenceActivity night theme

正如你所看到的,只是为了获得" night"的标题颜色。颜色。

我使用以下主题:

<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. 颜色&#34;开关&#34; ListPreference - 我想替换&#34;重音&#34;颜色(在我的情况下是橙色)。
  4. 感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以将以下代码添加到styles.xml中的黑暗主题中。它还会改变对话框的显示方式,因此它将是自己的页面而不是卡片样式。

<item name="android:alertDialogTheme">@style/ThemeOverlay.AppCompat.Dark</item>

Before

After

否则我必须制作自定义提醒对话框,试试这个How to change theme for AlertDialog

答案 1 :(得分:1)

首先,为您的对话框创建样式。

对话框样式

<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 是我的Night主题,我没有提及该主题的其他属性以最小化代码。

see here how it looks