我通读了许多线程,解释了如何在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
,清单中没有任何条目。另外,似乎必须有比创建全新样式更快的方法来将文本颜色应用于首选项屏幕。
答案 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(: