2016-12-27 194 views
0

enter image description here自定义样式属性

我想一些空间添加到我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我会尝试一下 –