하단 시트를 부분적으로 표시한 다음 사용자가 전체 화면으로 만들거나 닫을 수 있도록 허용할 수 있습니다.
이렇게 하려면 skipPartiallyExpanded
을 false
로 설정한 SheetState
의 인스턴스를 ModalBottomSheet
에 전달합니다.
예
이 예에서는 ModalBottomSheet
의 sheetState
속성을 사용하여 처음에는 시트를 부분적으로만 표시하는 방법을 보여줍니다.
@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
은skipPartiallyExpanded
이 false인SheetState
의 인스턴스입니다.ModalBottomSheet
는 완전히 확장되었을 때 화면을 채우는 수정자를 사용합니다.ModalBottomSheet
는sheetState
매개변수의 값으로sheetState
를 사용합니다.- 따라서 시트는 처음 열 때 일부만 표시됩니다. 그런 다음 사용자는 드래그하거나 스와이프하여 전체 화면으로 만들거나 닫을 수 있습니다.
onDismissRequest
람다 함수는 사용자가 하단 시트를 닫으려고 할 때 어떤 일이 발생하는지 제어합니다. 이 경우 시트만 삭제됩니다.
결과
사용자가 처음 버튼을 누르면 시트가 부분적으로 표시됩니다.
사용자가 시트를 위로 스와이프하면 시트가 화면을 채웁니다.