Функция 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,
которая выбирает число на шкале