具有自己的布局的 CheckBoxPreference
我有 PreferenceScreen 和一些 PreferenceCheckBox。我想更改标题和摘要的 textColor 和 textSize 以及选中和取消选中的复选框的图像。所以我使用 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>
带有 id @+android:id/title
的标题和带有 @+android:id/summary
的摘要显示了正确的值。然而,尽管有默认值和 id @+android:id/checkbox
,该复选框仍无法正常工作。它没有显示正确的值,我无法更改首选项中保存的值。 在不使用任何布局的情况下,我可以通过触摸整个 CheckBoxPreference 来更改复选框的值。但现在(使用我的布局)我只能通过触摸此复选框来更改复选框的值。 如何使用所有功能正确地为 CheckBoxPreference 进行布局?
I have PreferenceScreen with some PreferenceCheckBoxes. I want to change the textColor and textSize for title and summary and the images for the CheckBox checked and uncheckes. So I am using android:layout
to change this attributes.
My ChceckBoxPreference:
<CheckBoxPreference
android:layout="@layout/preference_checkbox"
android:key="temp"
android:title="@string/title"
android:summary="@string/summary"
android:defaultValue="true"
/>
When I use android:widgetLayout
it looks strange. And this is my 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>
Title with id @+android:id/title
and summary with @+android:id/summary
are showing correct values. However the checkbox despite of default value and id @+android:id/checkbox
is not working properly. It isn't showing correct value and I can't change the value kept in preferences.
Without using any layout, I can change value of checkbox by touch at the whole CheckBoxPreference. But now (with my layout) I can change value of checkbox only by touch on this checkbox.
How can I make layout for CheckBoxPreference in properly way with all the functionalities?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试将此作为preference_checkbox.xml
Try this as preference_checkbox.xml