如何更改首选项FRAGMENT中首选项的文本颜色?

时间:2019-05-17 21:16:25

标签: java android

我通读了许多线程,解释了如何在PreferenceActivity中更改首选项的文本颜色。我没有偏好活动。我在res / xml中将PreferenceFragment与PreferenceScreen一起使用

设置片段

public class SettingsFragment extends PreferenceFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = super.onCreateView(inflater, container, savedInstanceState);
        view.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
        return view;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences); // the settings XML here (not the layout)

    }
}

fragment_settings.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        style="@style/AppTheme2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title="General">

        <CheckBoxPreference
            android:key="pref_example_checkbox"
            android:title="first box"
            android:summaryOn="This is enabled"
            android:summaryOff="This is disabled"
            android:defaultValue="false" />
    </PreferenceCategory>

    <PreferenceCategory
        android:title="Notifications">

        <SwitchPreference
            android:key="pref_enable_notifications"
            android:title="Notifications on/off"
            android:defaultValue="true" />

        <EditTextPreference
            android:key="pref_notification_time"
            android:title="Notification time"
            android:summary="Some shit about notifications"
            android:inputType="number"
            android:dialogMessage="Dialog message!"
            android:defaultValue="5" />
    </PreferenceCategory>

    <PreferenceCategory
        android:title="About">

        <Preference
            android:key="pref_about_licenses"
            android:title="Licenses" />

        <Preference
            android:key="pref_about_app_version"
            android:title="Version" />
    </PreferenceCategory>

</PreferenceScreen>

我尝试将android:textColor="@color/white"添加到preferences.xml中的所有“首选项”项中,但是所有文本仍为黑色。 所有这些线程都在谈论创建新样式,但是没有一个解释如何将其应用于首选项片段。

偏好活动将显示在清单中,可以轻松地应用样式。但是对于PreferenceFragment,清单中没有任何条目。另外,似乎必须有比创建全新样式更快的方法来将文本颜色应用于首选项屏幕。

某些文本为黑色,有些为橙色(我的colorAccent) 此数据存储在哪里,如何更改? preference screen

1 个答案:

答案 0 :(得分:0)

检查以在您的style.xml中覆盖它

<item name="android:textColor">@color/color_text</item>
<item name="android:textColorPrimary">@color/color_text</item>
<item name="android:textColorSecondary">@color/color_text</item>

textColorSecondary似乎用于设置的摘要,textColor通过设置的标题,以及textPrimary idk(: