1

При использовании Default PreferenceThemeOverlay из библиотеки поддержки preference-v7 (версия 23.1.0) я столкнулся с следующей проблемой. Начиная с API 22 у моего PreferenceFragmentCompat появилось уродливое дополнительное дополнение, добавленное к левой и правой стороне моего списка предпочтений.Проблема с помещением PreferenceFragmentCompat с @ style/PreferenceThemeOverlay

build.gradle:

compile 'com.android.support:appcompat-v7:23.1.0' 

styles.xml:

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item> 

enter image description here

После того как я не нашел полезное решение на StackOverflow я написал обходной путь сам. Я просто хотел поделиться с парнями.

ответ

4

Кажется dafault обивка есть для API < 22 устройств, но не должны присутствовать в API> = 22. Вот мое исправление:

Это идет в styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light"> 

    ... 

    <item name="preferenceTheme">@style/AppTheme.FixForPreferenceThemeOverlay</item> 
</style> 

<style name="AppTheme.FixForPreferenceThemeOverlay" parent="PreferenceThemeOverlay"> 
    <item name="preferenceFragmentListStyle">@style/AppTheme.FixForPreferenceFragmentList</item> 
</style> 
<style name="AppTheme.FixForPreferenceFragmentList"> 
    <item name="android:paddingLeft">0dp</item> 
    <item name="android:paddingRight">0dp</item> 
</style> 
+1

Предполагают, что 'AppTheme.FixForPreferenceFragmentList' имеет' parent = "@ style/PreferenceFragmentList" ' – alenz316

+1

Также добавляет' 0dp 'и' 0dp 'to the Стиль списка также. – alenz316