2016-12-27 2 views
0

enter image description hereПользовательские атрибуты стиля для SwitchPreferenceCompat (поддержка v7)

Я пытаюсь добавить некоторое пространство в верхней части моей SwitchPreferenceCompat которая внутри PreferenceFragmentCompat. В основном мне просто нужно место между ним и верхним Toolbar, либо путем расширения его высоты, либо с помощью пробела без добавления пробела, который будет мешать тени места Toolbar. Я верю, что смогу добиться этого, добавив собственный стиль к SwitchPreferenceCompat, но у меня возникли проблемы с его работой.

Вот что я пробовал:

В моих styles.xml -

<style name="SwitchPreferenceNew" parent="Preference.SwitchPreferenceCompat.Material"> 
    <item name="android:paddingTop">20dp</item> 
</style> 

В моих app_preferences.xml -

<android.support.v7.preference.SwitchPreferenceCompat 
    style="@style/SwitchPreferenceNew" 
    android:defaultValue="false" 
    android:icon="@drawable/ic_power_settings_new_black_48dp" 
    android:key="prefsActivate" 
    android:summary="" 
    android:title="Activate reminders" /> 

Я думаю, что я просто не перекрывая стиль правильно, но я я не знаю, как это сделать с SwitchPreferenceCompat. Заранее спасибо!

ответ

2

Я знаю, что это поздно, но я получаю результат из следующего кода:

мое приложение Тема:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="preferenceTheme">@style/my_preference_theme</item> 
</style> 

мое предпочтение Тема:

<style name="my_preference_theme" parent="@style/PreferenceThemeOverlay"> 
    <item name="switchPreferenceCompatStyle">@style/preference_switch_compat</item> 
</style> 

в моем PreferenceSwitchCompat я использовал макет имущества и вы должны создать новый макет для своего вида

<style name="preference_switch_compat"> 
    <item name="android:layout">@layout/switch_layout</item> 
</style> 

это здесь вы должны настроить свой вид:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.SwitchCompat 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/switchWidget" 
    android:background="#f00" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

надежду, чтобы помочь кому-то.

+0

спасибо famalam Я попробую его –

Смежные вопросы