Sie müssen keine neue Komponente erstellen.
Zunächst sollten Sie anstelle von SwitchPreference CheckBoxPreference
verwenden, um niedrigere APIs zu unterstützen.
Erstellen Sie mithilfe des vorhandenen Widgets android.support.v7.widget.SwitchCompat
eine neue Layoutdatei, z. B. l_switch.xml
. Verwenden Sie den folgenden Code ein:
<?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" />
Dann, um Ihre SwitchPreferenceCheckBoxPreference in PreferenceFragment
,
yourSwitch = findPreference("key_for_this_component");
yourSwitch.setWidgetLayoutResource(R.layout.l_switch);
oder direkt auf Ihrem CheckBoxPreference,
android:widgetLayout="@layout/l_switch"
Dies zwingt die CheckBoxPreference verwendet den SwitchCompat
Stil.
Ich habe meine Antwort bearbeitet. Bitte verwenden Sie die bearbeitete Antwort. – jyoon