Спросите помощника
0/400
Вопрос обрабатывается ИИ-сервисом и сохраняется для улучшения ответов. Не вводите персональные данные.

    Checkbox

    Флажок: включено, выключено и (по желанию) «не определено». Сам флажок значения не хранит : он показывает value и сообщает о нажатии через onChanged ; новое значение записывает в состояние автор разметки.

    Тип: leaf

    @agree:false
    Checkbox value:$agree onChanged:(v){agree = v}

    Параметры

    Параметр Тип Default Описание
    value bool — Включён ли флажок. Для tristate пустое значение — «не определено»
    tristate bool false Третье состояние — «не определено»
    onChanged callback — Вызывается при нажатии, получает новое значение. Без него флажок выключен (серый, не нажимается)
    activeColor color — Цвет включённого флажка
    checkColor color — Цвет галочки
    focusColor color — Цвет подсветки при фокусе (только приложение)
    hoverColor color — Цвет подсветки при наведении (только приложение)

    Вложенные структуры

    #shape , #side , #visualDensity

    #shape — форма (например, #shape rounded со своим #borderRadius ), #side — рамка, #visualDensity — плотность (размер кликабельной области).

    @done:true
    Checkbox value:$done activeColor:#4f46e5 checkColor:#ffffff onChanged:(v){done = v}
      #shape rounded
        #borderRadius circular 4

    Примеры

    Согласие с условиями

    @agree:false
    Row spacing:8
      Checkbox value:$agree onChanged:(v){agree = v}
      Text "Я согласен с условиями"

    Флажок с третьим состоянием

    @all:false
    Checkbox value:$all tristate:true onChanged:(v){all = v}

    Различия между приложением и сайтом

    • Вид флажка на сайте и в приложении один и тот же (рисуется по правилам Material, а не браузером).
    • focusColor , hoverColor на сайте не читаются.
    • Checkbox без onChanged и там, и там серый и неактивный.

    Bad practices

    Флажок без onChanged

    // BAD — флажок выключен: нажимать его нельзя
    Checkbox value:true
    // GOOD
    @checked:true
    Checkbox value:$checked onChanged:(v){checked = v}

    See also

    • Switch — переключатель
    • Text — подпись рядом с флажком
    menu_baseline