是否有一个XML属性,以便我可以设置我的自定义首选项的外观,属性为:android:enabled="false";?
例如,如果您使用默认的CheckBoxPreference并禁用它,它将变灰,并向用户指示它已禁用,单击它可能不会有任何作用。
但根据我的自定义偏好,禁用它不会让它看起来有任何不同,因此当用户点击它时,它会让用户感到困惑,而它什么也不做。
创建可绘制的checkbox.xml文件,该文件由<selector>
组成,根据其状态设置复选框按钮的图像:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/checkbox_checked" /> <!-- checked -->
<item android:state_checked="false"
android:drawable="@drawable/checkbox_unchecked" /> <!-- default -->
</selector>
你甚至可以用颜色来代替这些抽屉。
在您的自定义复选框首选项中,使用此可绘制的添加复选框按钮checkbox_preference.xml。将此文件放入布局文件夹:
<CheckBox android:id="@+android:id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/checkbox" />
使用prefs.xml对此进行充气。layout属性用于放置带有自定义复选框的自定义布局。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/category_title">
<CheckBoxPreference
android:key="preferenceKey"
android:title="@string/preferenceTitle"
android:defaultValue="false"
android:layout="@layout/checkbox_preference"
/>
</PreferenceCategory>
</PreferenceScreen>