หากคุณต้องการใช้ Bottom Sheet คุณสามารถใช้
ModalBottomSheet
Composable
คุณสามารถใช้ช่อง content
ซึ่งใช้ ColumnScope
เพื่อจัดรูปแบบชีต
เนื้อหา Composable ในคอลัมน์:
ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) { // Sheet content }
การขยายและยุบแผ่นงานแบบเป็นโปรแกรมสามารถทำได้โดยใช้
SheetState
คุณใช้ rememberSheetState
เพื่อสร้างอินสแตนซ์ได้
ของ SheetState
ซึ่งควรส่งไปยัง ModalBottomSheet
ที่มีฟิลด์
พารามิเตอร์ sheetState
SheetState
ให้สิทธิ์เข้าถึงshow
และ
hide
ตลอดจนพร็อพเพอร์ตี้ที่เกี่ยวข้องกับชีตปัจจุบัน
ฟังก์ชันการระงับเหล่านี้ต้องใช้ CoroutineScope
ตัวอย่างเช่น
โดยใช้ rememberCoroutineScope
และสามารถเรียกใช้ใน UI ได้
กิจกรรม อย่าลืมนำ ModalBottomSheet
ออกจากการเรียบเรียงเมื่อซ่อน
Bottom Sheet
val sheetState = rememberModalBottomSheetState() val scope = rememberCoroutineScope() var showBottomSheet by remember { mutableStateOf(false) } Scaffold( floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show bottom sheet") }, icon = { Icon(Icons.Filled.Add, contentDescription = "") }, onClick = { showBottomSheet = true } ) } ) { contentPadding -> // Screen content if (showBottomSheet) { ModalBottomSheet( onDismissRequest = { showBottomSheet = false }, sheetState = sheetState ) { // Sheet content Button(onClick = { scope.launch { sheetState.hide() }.invokeOnCompletion { if (!sheetState.isVisible) { showBottomSheet = false } } }) { Text("Hide bottom sheet") } } } }