Отключить пользовательские настройки, но также предоставить макет, когда он отключен? - PullRequest
1 голос
/ 06 августа 2020

Есть ли атрибут XML, чтобы я мог установить внешний вид моего пользовательского предпочтения с атрибутом: android: enabled = "false"?

Например, если вы используете CheckBoxPreference по умолчанию и отключите его, он будет выделен серым цветом и укажет пользователю, что он отключен, и щелчок по нему, вероятно, ничего не сделает. вводит пользователя в заблуждение, когда он нажимает на него и ничего не делает.

1 Ответ

1 голос
/ 06 августа 2020

Создать настраиваемый флажок. 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" />

Увеличьте его, используя ваши настройки. xml. Атрибут макета используется для установки настраиваемого макета с настраиваемым флажком.

 <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>
...