У меня есть PreferenceScreen с некоторыми PreferenceCheckBoxes. Я хочу изменить textColor и textSize для заголовка и резюме, а также изображения для CheckBox отмечены и сняты. Поэтому я использую android:layout
для изменения этих атрибутов.
Мой 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
, не работает должным образом. Это не показывает правильное значение, и я не могу изменить значение, сохраненное в настройках.
Не используя макет, я могу изменить значение флажка, коснувшись всей ссылки CheckBox. Но теперь (с моим макетом) я могу изменить значение флажка только при касании этого флажка.
Как правильно сделать макет для CheckBoxPreference со всеми функциями?