Возможный дубликат:
Измените значки отмеченных и непроверенных для флажка для 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
внутри своего 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);
Ресурсы нашли, что были похожи на этот вопрос.
Константин Буров
Ссылки на расширенные вопросы из комментариев:
Также, как изменить стиль элемента списка?
Кроме того, я хотел бы добавить некоторые paddings для перечисления элементов.