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

Функция rememberModalBottomSheetState

Функция rememberModalBottomSheetState создаёт и хранит между перерисовками объект SheetState. Его передают в параметр sheetState у функции ModalBottomSheet. Показ и скрытие листа вызывают suspend-методы этого класса из корутины rememberCoroutineScope.

Синтаксис

val sheetState = rememberModalBottomSheetState()

Параметры

Параметр Описание
skipPartiallyExpanded Если true, лист не останавливается в промежуточном положении между скрытым и полностью раскрытым.
confirmValueChange Лямбда, которая решает, можно ли перейти в новое положение листа. По умолчанию разрешает любой переход.

Пример

Давайте свяжем состояние с нижним листом:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState 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, ) { Text(text = "abcde") } } } } }

На экране сразу виден нижний лист с текстом "abcde".

Пример

Давайте запретим промежуточное положение листа:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState 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( skipPartiallyExpanded = true, ) var open by remember { mutableStateOf(true) } if (open) { ModalBottomSheet( onDismissRequest = { open = false }, sheetState = sheetState, ) { Text(text = "12345") } } } } }

На экране лист либо полностью открыт, либо скрыт, без задержки на половине высоты.

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

  • функция ModalBottomSheet,
    которая рисует нижний лист на экране
  • класс SheetState,
    который возвращает эта функция
  • метод expand,
    который раскрывает лист на всю высоту
  • метод hide,
    который прячет лист вниз
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить