SwitchPreferenceCompat 的自定义样式属性(支持 v7)

Custom style attributes for SwitchPreferenceCompat (support v7)

我正在尝试将一些 space 添加到 SwitchPreferenceCompat 的顶部,它位于 PreferenceFragmentCompat 的内部。基本上,我只需要在它和顶部 Toolbar 之间留出一些空间,方法是扩大它的高度,或者在不添加会干扰 Toolbar 的高度阴影的白色 space 的情况下使用填充间隙.我相信我可以通过向 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 来实现它。提前致谢!

我知道这已经晚了,但我从以下代码中得到了结果:

我的应用主题:

<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"/>

希望对某人有所帮助。