PreferenceFragmentCompat

PreferenceFragmentCompat

使用v7首选项支持库中的新PreferenceFragmentCompat:http://developer.android.com/tools/support-library/features.html#v7-preference,我收到此错误

E  java.lang.IllegalStateException: Must specify preferenceTheme in theme
E      at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:202)

应该设置什么主题?

更新:尝试使用的
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
如@Bogato所建议的那样,但它看起来不正确,即使在棒棒糖上也看起来非常Holo。

支持库:

android - PreferenceFragmentCompat需要preferenceTheme设置-LMLPHP

native 首选项:

android - PreferenceFragmentCompat需要preferenceTheme设置-LMLPHP

最佳答案



该错误修复程序可以作为gradle依赖项使用

android - PreferenceFragmentCompat需要preferenceTheme设置-LMLPHP

现在,可以轻松使用该库了。这是最快的方法,但是您应该查看自述文件以了解更多信息。

1.更新模块的gradle文件:
compile 'com.takisoft.fix:preference-v7:27.0.0.0'
2.使用适当的类作为片段的基础

您可以使用PreferenceFragmentCompatPreferenceFragmentCompatDividers

(导入PreferenceFragmentCompat时请注意适当的软件包名称!)

3.使用适当的主题

将您包含的Activity主题设置为@style/PreferenceFixTheme的变体,例如NoActionBar,Light等。



P.S.在本节中,您可以找到导致创建该库的详细解决方案,但是我决定删除它,因为它可能会造成混淆。如果您对这些步骤感到好奇,仍然可以在此答案的revision history中找到它们。

关于android - PreferenceFragmentCompat需要preferenceTheme设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32070670/

10-10 09:32