如何为PreferenceFragmentCompat添加样式

10

我正在使用PreferenceFragmentCompat,但我觉得它的样式不正确。

这里输入图片描述

设置页面标题太大了,选项分类的文本无法阅读,整个界面看起来不协调。

这是我在theme.xml中的设置:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>

<style name="PreferenceThemeOverlay">
    <item name="preferenceScreenStyle">@style/Preference.PreferenceScreen</item>
    <item name="preferenceFragmentStyle">@style/PreferenceFragment</item>
    <item name="preferenceCategoryStyle">@style/Preference.Category</item>
    <item name="preferenceStyle">@style/Preference</item>
    <item name="preferenceInformationStyle">@style/Preference.Information</item>
    <item name="checkBoxPreferenceStyle">@style/Preference.CheckBoxPreference</item>
    <item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item>
    <item name="dialogPreferenceStyle">@style/Preference.DialogPreference</item>
    <item name="editTextPreferenceStyle">@style/Preference.DialogPreference.EditTextPreference
    </item>
    <item name="preferenceFragmentListStyle">@style/PreferenceFragmentList</item>
</style>

https://chris.banes.me/2014/11/12/theme-vs-style/ - Sree
请参见 https://dev59.com/W1UK5IYBdhLWcg3woRP1#52960668 以获取一次性修复所有首选项的解决方案。 - and_dev
1个回答

30

按照这个进行操作。

修改

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>

然后,在build.gradle文件的依赖项中进行更改。

com.android.support:preference-v7

com.android.support:preference-v14

1
此解决方案不支持 SDK < 14。 - Trancer
我认为,com.android.support:preference-v14 应该是 com.android.support:preference-v7 的补充,而不是替代品,正如这里所解释的那样:链接 - Fatih K.

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