我有一些PreferenceCheckBoxes的PreferenceScreen。我想更改标题和摘要的textColor和textSize,并勾选和取消选中CheckBox的图像。所以我使用android:layout
来改变这个属性。带自己的布局的CheckBoxPreference
我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>
冠军ID @+android:id/title
和总结与@+android:id/summary
都呈现正确的价值观。但是,尽管缺省值和编号为@+android:id/checkbox
的复选框无法正常工作。它没有显示正确的值,我无法更改保存在首选项中的值。 不使用任何布局,我可以通过触摸整个CheckBoxPreference来更改复选框的值。但现在(使用我的布局),只需触摸此复选框即可更改复选框的值。 如何以正确的方式为所有功能制作CheckBoxPreference的布局?
见http://stackoverflow.com/questions/3569412/customize-check-box-preference,设置可点击和可聚焦为false,您的复选框 – devisnik
@devisnik的OP正在谈论改变整个布局背后的偏好,你指出的解决方案只是关于复选框 –
devisnik的答案应该是正确的。需要这些设置来改变偏好值。 – user1608385