คุณสามารถแสดงชีตด้านล่างบางส่วน แล้วให้ผู้ใช้ขยายเป็นเต็มหน้าจอหรือปิดก็ได้
โดยส่งอินสแตนซ์ SheetState
ให้กับ ModalBottomSheet
โดยตั้งค่า 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
เป็นเท็จModalBottomSheet
ใช้ตัวแก้ไขที่ช่วยให้เต็มหน้าจอเมื่อขยายออกจนสุดModalBottomSheet
ใช้sheetState
เป็นค่าสําหรับพารามิเตอร์sheetState
- ด้วยเหตุนี้ชีตจึงแสดงเพียงบางส่วนเมื่อเปิดเป็นครั้งแรก จากนั้นผู้ใช้สามารถลากหรือปัดเพื่อขยายเป็นโหมดเต็มหน้าจอหรือปิด
onDismissRequest
lambda จะควบคุมสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้พยายามปิดชีตด้านล่าง ในกรณีนี้ ระบบจะนำเฉพาะชีตออก
ผลลัพธ์
เมื่อผู้ใช้กดปุ่มครั้งแรก ชีตจะแสดงเพียงบางส่วน ดังนี้
หากผู้ใช้ปัดชีตขึ้น ชีตจะขยายเต็มหน้าจอ