Проблема заполнения PreferenceFragmentCompat с @style/PreferenceThemeOverlay

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

построить.градле:

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

стили.xml:

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

введите здесь описание изображения

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


person Konstantin    schedule 18.10.2015    source источник


Ответы (1)


Кажется, что заполнение 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>
person Konstantin    schedule 18.10.2015
comment
Предположите, что AppTheme.FixForPreferenceFragmentList имеет parent="@style/PreferenceFragmentList" - person alenz316; 15.12.2016
comment
Также добавление <item name="android:paddingStart">0dp</item> и <item name="android:paddingEnd">0dp</item> в стиль списка. - person alenz316; 15.12.2016