Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
164 of 502 menu
◀ ▶

Функция TriStateCheckbox

Функция TriStateCheckbox рисует флажок Material3 с тремя визуальными состояниями. Текущее состояние передают в state типа ToggleableState из пакета androidx.compose.ui.state: On с галочкой, Off пустой и Indeterminate с чертой. Переключение обрабатывают в onClick, логику следующего состояния пишут сами.

Синтаксис

TriStateCheckbox( state = state, onClick = { /* next state */ }, )

Параметры

Параметр Описание
state Одно из значений ToggleableState: On, Off или Indeterminate.
onClick Вызывается при нажатии на флажок. Здесь меняют состояние в remember.
enabled Разрешает или блокирует нажатия.

Пример

Давайте по нажатию пройдём цикл Off, Indeterminate и On:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.TriStateCheckbox import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.state.ToggleableState class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { var state by remember { mutableStateOf(ToggleableState.Indeterminate) } TriStateCheckbox( state = state, onClick = { state = when (state) { ToggleableState.Off -> ToggleableState.Indeterminate ToggleableState.Indeterminate -> ToggleableState.On ToggleableState.On -> ToggleableState.Off } }, ) } } }

На экране флажок с чертой неопределённого состояния, каждое нажатие меняет вид на пустой, с галочкой и снова с чертой.

Смотрите также

  • функция Checkbox,
    которая рисует обычный двухсостоянияный флажок
  • функция Switch,
    которая переключает режим ползунком
  • функция RadioButton,
    которая отмечает один пункт в группе
  • функция Slider,
    которая выбирает число на шкале
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить