PreferenceFragmentCompat requires preferenceTheme to be set
You have to specify preferenceTheme in your preference activity's theme.
For example :
<style name="SettingsTheme" parent="Theme.AppCompat.NoActionBar">
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
PreferenceThemeOverlay is the default theme which comes with preference-v7 support library.
The sample project can be found here
The bugfix is available as a gradle dependency
Now one can use the library pretty easy. Here are quickest way to do so, but you should check out the README for more info.
1. Update your module's gradle file:
compile 'com.takisoft.fix:preference-v7:27.0.0.0'
2. Use the appropriate class as your fragment's base
You can use either PreferenceFragmentCompat
or PreferenceFragmentCompatDividers
.
(Watch out for the appropriate package name when importing PreferenceFragmentCompat
!)
3. Use the appropriate theme
Set your containing Activity's theme to a variant of @style/PreferenceFixTheme
, like NoActionBar, Light, etc.
For more info and usage tips, go to the project's page.
P.S. In this section you could find the detailed solution that led to creation of the library, but I decided to remove it because it might be confusing. If you're curious about the steps, you can still find them in the revision history of this answer.