Вы можете частично показать нижний лист, а затем позволить пользователю развернуть его на весь экран или закрыть.
Для этого передайте в ModalBottomSheet экземпляр SheetState, в котором для skipPartiallyExpanded задано значение false.
Пример
В этом примере показано, как использовать свойство sheetState объекта ModalBottomSheet, чтобы сначала показывать только часть листа:
@Composable fun PartialBottomSheet() { var showBottomSheet by remember { mutableStateOf(false) } val sheetState = rememberModalBottomSheetState( skipPartiallyExpanded = false, ) Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, ) { Button( onClick = { showBottomSheet = true } ) { Text("Display partial bottom sheet") } if (showBottomSheet) { ModalBottomSheet( modifier = Modifier.fillMaxHeight(), sheetState = sheetState, onDismissRequest = { showBottomSheet = false } ) { Text( "Swipe up to open sheet. Swipe down to dismiss.", modifier = Modifier.padding(16.dp) ) } } } }
Ключевые моменты
В этом примере обратите внимание на следующее:
showBottomSheetопределяет, будет ли приложение показывать нижний лист.sheetState– это экземплярSheetState, гдеskipPartiallyExpandedимеет значение false.ModalBottomSheetпринимает модификатор, который обеспечивает заполнение экрана при полном развертывании.ModalBottomSheetпринимаетsheetStateв качестве значения параметраsheetState.- В результате при первом открытии таблица отображается только частично. Пользователь может перетащить или провести по нему, чтобы развернуть на весь экран или закрыть.
- Лямбда-функция
onDismissRequestопределяет, что происходит, когда пользователь пытается закрыть нижнюю панель. В этом случае будет удален только лист.
Результаты
Когда пользователь впервые нажимает на кнопку, лист отображается частично:
Если пользователь проведет по нему вверх, он займет весь экран: