Класс SheetState
Класс SheetState описывает,
насколько раскрыт нижний лист
ModalBottomSheet.
Объект получают из функции
rememberModalBottomSheetState
и передают в параметр sheetState.
Методы show,
hide,
expand
и partialExpand
помечены как suspend. Их вызывают
из корутины rememberCoroutineScope.
Синтаксис
val sheetState = rememberModalBottomSheetState()
Методы
| Метод | Описание |
|---|---|
show |
Показывает лист, если он был скрыт. |
hide |
Скрывает лист вниз с анимацией. |
expand |
Раскрывает лист на максимальную высоту. |
partialExpand |
Переводит лист в частично раскрытое положение. |
Пример
Давайте раскроем лист методом expand:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.Text
import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
@OptIn(ExperimentalMaterial3Api::class)
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val sheetState = rememberModalBottomSheetState()
var open by remember { mutableStateOf(true) }
if (open) {
ModalBottomSheet(
onDismissRequest = { open = false },
sheetState = sheetState,
) {
LaunchedEffect(Unit) {
sheetState.expand()
}
Text(text = "abcde")
}
}
}
}
}
На экране лист сразу займёт максимальную доступную высоту над системной панелью.
Смотрите также
-
функция
ModalBottomSheet,
которая принимает SheetState в sheetState -
функция
rememberModalBottomSheetState,
которая создаёт объект SheetState -
метод
partialExpand,
который оставляет лист на половине экрана -
функция
Scaffold,
которая держит основной экран под листом