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
スタイルを使用するようになります。