У меня есть PreferenceScreen с некоторыми PreferenceCheckBoxes. Я хочу изменить textColor и textSize для заголовка и резюме, а изображения для CheckBox отмечены и сняты. Поэтому я использую android: layout
для изменения этих атрибутов.
My ChceckBoxPreference:
<CheckBoxPreference
android:layout="@layout/preference_checkbox"
android:key="temp"
android:title="@string/title"
android:summary="@string/summary"
android:defaultValue="true"
/>
Когда я использую android: widgetLayout
, это выглядит странно. И это мой файл preference_checkbox.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
>
<TextView
android:id="@+android:id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/gray"
android:textSize="20sp"
/>
<TextView
android:id="@+android:id/summary"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/gray"
android:textSize="14sp"
/>
</LinearLayout>
<CheckBox
android:id="@+android:id/checkbox"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
/>
</RelativeLayout>
Заголовок с идентификатором @ + android: id / title
и сводка с @ + android: id / summary
показывают правильные значения. Однако, несмотря на значение по умолчанию и идентификатор @ + android: id / checkbox
, флажок не работает должным образом. Он показывает неверное значение, и я не могу изменить значение, сохраненное в настройках.
Без использования какого-либо макета я могу изменить значение флажка на ощупь на всем CheckBoxPreference. Но теперь (с моим макетом) я могу изменить значение флажка, только коснувшись этого флажка.
Как правильно создать макет для CheckBoxPreference со всеми функциями?