是否禁用自定义首选项,但同时提供禁用时的布局



是否有一个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>

相关内容

  • 没有找到相关文章

最新更新