当前位置: 首页 > 知识库问答 >
问题:

更改开关首选项颜色

赏光霁
2023-03-14

我有一个设置xml文件,其中有checkboxpreferences和一个switchpreference,当我切换到暗模式时,开关和复选框的颜色不会根据所选模式自动改变这里是我所说的图像

所以switchpreference应该是白色的,当应用程序是暗模式,但它没有改变,谁能帮助我修复它,谢谢

*这是我的设置xml文件

<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <Preference
        android:title="@string/YourPreferredLanguage"
        android:icon="@drawable/ic_baseline_language_24"/>

        <CheckBoxPreference
            android:title="@string/French"
            android:key="french"
            />
        <CheckBoxPreference
            android:title="@string/English"
            android:key="english"
            />
        <CheckBoxPreference
            android:title="@string/spanish"
            android:key="spanish"
            />
        <CheckBoxPreference
            android:title="@string/Portuguese"
            android:key="portuguese"
            />


    <Preference
        android:key="preferences"
        android:title="@string/rateourapp"
        android:icon="@drawable/ic_baseline_stars_24"/>
        <taki.food.foodappv.RatingPreferences
            android:defaultValue=""
            android:key="customlayout"/>

    <Preference
        android:title="@string/switchmodes"
        app:allowDividerAbove="true"
        android:icon="@drawable/ic_baseline_perm_data_setting_24"/>
        <SwitchPreference
            android:key="switchmode"
            android:title="Light Mode ON"/>

</androidx.preference.PreferenceScreen>

共有1个答案

潘佐
2023-03-14

colors.xml/styles.xml中的coloraccent定义了复选框/评级栏、ProgressBar/Switch的颜色,对于许多其他sdk小部件,比如某些颜色是DatePicker。colorprimary设置动作条形码的颜色colorprimarydark设置状态栏的颜色它们也会出现在其他很多地方我现在不记得了,但随着时间的推移,你会注意到的。

同样,文本颜色显然不是由colorprimary设置的,因为默认情况下文本是灰色的,而您的colorprimary不是灰色的,文本颜色来自一个名为textcolor的app主题属性,该属性由textview使用,您可以在app主题中覆盖它,在名为apptheme的样式中打开styles.xml包括 your

默认情况下,android studio可以从父主题重写许多其他内容,您可以重写ColorAccentColorPrimaryColorPrimaryDark例如,重写WindowBackgroundAppTheme中的 >@color/WindowBackground 更改默认情况下为White的背景。对于所有应用程序,还有更多的内容可以自定义,例如,重写对话框

因此,如果switchratingbar的默认颜色来自values-night的color.xml,并且也在values文件夹的colors.xml中,那么更改switchratingbar的默认颜色,则需要覆盖coloraccent

祝你有愉快的一天

来自印度的爱

 类似资料:
  • 我已经阅读了几十篇文章,解释了如何在PreferenceActivity中更改首选项的文本颜色。我没有偏好活动。我在res/xml中使用PreferenceFragment和PreferenceScreen 设置片段 fragment\u设置。xml 偏好。xml 我尝试将添加到中的所有首选项中,但所有文本仍然是黑色的。所有这些线程都在谈论创建一种新样式,但没有一个解释如何将其应用于首选项片段。

  • 我的xml代码如下: 我怎么在这里更改标题的颜色?我对android很陌生。

  • ListPreferenceHey我正在使用PreferenceActivity,并使用ListPreferency添加了单选按钮。问题是listPreference使用了自己的对话框,其中有蓝色单选按钮(Lollipop上为绿色),我需要将其更改为橙色。我设法得到对话框,并使用以下命令更改标题和分隔线颜色: 那么如果标题id是“android:id/alertTitle”,divder id是“

  • 我有一个选择框,当选择框被单击并显示所有选项时,我正在尝试更改选项的背景颜色。

  • 我在设置中使用ListPreference,我希望颜色适应当前主题的颜色。目前,我正在将主题的alertDialogTheme样式更改为我自己的样式。我已经了解了如何更改对话框标题的颜色、对话框按钮的颜色、单选按钮的文本以及当前所选项目的单选按钮的颜色。我想更改未选中项目单选按钮的颜色。我用红色圈出了我想改变的颜色。 列表首选项: 主题风格:

  • 我想要一个首选项标题的文本,以便在另一个首选项(a)更改时将其颜色更改为白色。当另一个首选项被更改时,我将从侦听器调用此方法: 现在有两种情况: 1) 如果我在方法中返回true,则的开关将正确更改(意味着在启用或禁用的新状态下向左或向右滑动),但受影响首选项的标题颜色不会更改。 2) 如果我在首选项更改中返回false,开关不会改变,但是标题文本的颜色会突然改变。 我怎样才能正确地做呢?