PreferencesActivity - настраивать стиль чекбоксов, переключателей и т. Д. [Дубликаты]

1

Возможный дубликат:
Измените значки отмеченных и непроверенных для флажка для Android
настроить флажок

Есть ли способ настроить стиль элементов в PreferencesActivity?

Я смог изменить цвет текста, фона и т.д.

Я хочу также изменить галочку и стиль кнопки радио в CheckBoxPreference и так далее.

Я интересен API8 или выше.

Спасибо за вашу помощь!

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="vibrate"
        android:summary="summary"
        android:title="Some title"
        android:widgetLayout="@layout/custom_checkbox" />
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="autorotate"
        android:summary="summary"
        android:title="auto rotate" />
</PreferenceScreen>
Теги:
checkbox
radio
preferences
preferencescreen

1 ответ

4
Лучший ответ

Я понимаю, что вы сейчас говорите. Я думал, что вы просто используете обычный CheckBox внутри своего View. Вы используете CheckBoxPreference и другие Preference Views.

Хорошо, но концепция очень похожа.

Вам нужно определить настраиваемый макет виджетов. Сделайте это в своем каталоге res/layout и назовите его custom_checkbox.xml. Мы можем использовать CheckBox в качестве примера.

Определите, как вы хотите, чтобы CheckBoxPreference выглядел с настраиваемым макетом виджетов, созданным в каталоге res/layout с помощью CheckBox. Например:

<CheckBox
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+android:id/customCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/android_button"
    android:clickable="false"
    android:focusable="false" />

Вы можете заменить android:button с любой drawable которую вы нашли или разработали.

Теперь вам нужно определить свой CheckBoxPreference и установить его android:widgetLayout в пользовательский CheckBox вы только что определили в res/layout. Например:

<CheckBoxPreference
    android:defaultValue="true"
    android:key="@string/Drop_Option"
    android:title="Close after call drop"
    android:widgetLayout="@layout/custom_checkbox" />

Если вы не используете xml для определения layout вы можете сделать это в коде следующим образом:

    CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);
    checkBoxPreference.setWidgetLayoutResource(R.layout.custom_checkbox);

Ресурсы нашли, что были похожи на этот вопрос.

Константин Буров


Ссылки на расширенные вопросы из комментариев:

Также, как изменить стиль элемента списка?

Android-ListView стиль

Кроме того, я хотел бы добавить некоторые paddings для перечисления элементов.

Расстояние между-между-ListView-элементы-андроид

  • 0
    Это не тот случай. Мне нужно добавить их в CheckBoxPreference, ListPreference и так далее. С тобой все в порядке, но он не работает с ними. Нет фонового атрибута.
  • 0
    Я скучаю, понял твой вопрос. Пожалуйста, прочитайте мое редактирование. Я понимаю, что вы сказали сейчас. Как только вы сможете подтвердить, что этот ответ правильный, я удалю предыдущий ответ.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню