Есть ли простой способ использовать пользовательское изображение для флажка? Я пытаюсь продублировать "помеченное" поведение gmail. Поэтому я хочу иметь флажок, который, когда отмечен, является заполненной звездочкой. И когда не проверено пустая звезда. Должен ли я использовать изображение и сам делать свою логику?
182
android:button
ниже решение намного лучше, чем использование атрибута background!Создайте селектируемый флажок:
Убедитесь, что ваш флажок похож на это
android:button="@drawable/checkbox_selector"
источник
Скопируйте файл btn_check.xml из android-sdk / platform / android - # / data / res / drawable в папку для рисования вашего проекта и измените состояния «включено» и «выключено» для ваших пользовательских изображений.
Тогда ваш XML просто нужно
android:button="@drawable/btn_check"
Если вы хотите использовать разные значки Android по умолчанию, вы можете использовать
android:button="@android:drawable/..."
источник
Рез / рисуем / day_selector.xml
разреш / макет / my_layout.xml
источник
Если у вас есть открытый исходный код Android, вы можете найти определение стилей в:
src / frameworks / base / core / res / res / values
источник
Попытайся -
Добавить этот атрибут -
Используйте как -
Это исправит все ваши проблемы.
источник
onSaveInstanceState()
иonRestoreInstanceState()
методами, я думаю , что проверили состояние будет потерян при вращенииДругой вариант - использовать ToggleButton с нулевым фоном и пользовательскую кнопку.
Ниже приведен пример, который включает в себя селектор для цвета текста.
toggle_selector.xml
toggle_text.xml
источник
Если вы используете настраиваемые адаптеры, тогда
android:focusable="false"
иandroid:focusableInTouchMode="false"
нужно сделать элементы списка активными при использовании флажка.В drawable> checkbox_layout.xml
источник
Если вы используете androidx.appcompat: appcompat и хотите, чтобы пользовательский объект рисования (типа
selector
сandroid:state_checked
) работал на старых версиях платформы в дополнение к новым версиям платформы, вам необходимо использоватьвместо того
источник
На основании ответов Анселика и Рахула.
Это работает для меня (до и после API 21):
источник