appcompat v7 には a がないので、SwitchCompatPreference自分で作成する必要があるようです。
これはどのように達成できますか?私は少しグーグルで、のチュートリアルを見つけましたDialogPreference。私はそれを採用しようとしましたSwitchCompatPreferenceが、私のxmlレイアウトでは、このクラスは設定xmlでは許可されていないと常に言われています。
私は何をする必要がありますか?
appcompat v7 には a がないので、SwitchCompatPreference自分で作成する必要があるようです。
これはどのように達成できますか?私は少しグーグルで、のチュートリアルを見つけましたDialogPreference。私はそれを採用しようとしましたSwitchCompatPreferenceが、私のxmlレイアウトでは、このクラスは設定xmlでは許可されていないと常に言われています。
私は何をする必要がありますか?
新しいコンポーネントを作成する必要はありません。
まず、CheckBoxPreference下位の API をサポートするために、SwitchPreference の代わりに使用する必要があります。
既存のandroid.support.v7.widget.SwitchCompatウィジェットを使用して、新しいレイアウト ファイルを作成しますl_switch.xml。次のコードを使用します。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.SwitchCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/checkbox" <!-- IMPORTANT -->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false" <!-- IMPORTANT -->
android:focusable="false" <!-- IMPORTANT -->
android:gravity="center" />
次に、のSwitchPreference CheckBoxPreferenceにPreferenceFragment、
yourSwitch = findPreference("key_for_this_component");
yourSwitch.setWidgetLayoutResource(R.layout.l_switch);
または、CheckBoxPreference に直接、
android:widgetLayout="@layout/l_switch"
これにより、CheckBoxPreference がSwitchCompatスタイルを使用するようになります。