Vous pouvez afficher partiellement une bottom sheet, puis laisser l'utilisateur la mettre en plein écran ou la fermer.
Pour ce faire, transmettez à votre ModalBottomSheet une instance de SheetState avec skipPartiallyExpanded défini sur false.
Exemple
Cet exemple montre comment utiliser la propriété sheetState de ModalBottomSheet pour n'afficher la feuille que partiellement au début :
@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) ) } } } }
Points clés concernant le code
Dans cet exemple, notez les points suivants :
showBottomSheetcontrôle si l'application affiche la bottom sheet.sheetStateest une instance deSheetStateoùskipPartiallyExpandedest défini sur "false".ModalBottomSheetaccepte un modificateur qui garantit qu'il remplit l'écran lorsqu'il est entièrement développé.ModalBottomSheetutilisesheetStatecomme valeur pour son paramètresheetState.- Par conséquent, la feuille ne s'affiche que partiellement à la première ouverture. L'utilisateur peut ensuite la faire glisser ou la balayer pour la mettre en plein écran ou la fermer.
- Le lambda
onDismissRequestcontrôle ce qui se passe lorsque l'utilisateur tente de fermer la bottom sheet. Dans ce cas, il ne supprime que la feuille.
Résultats
Lorsque l'utilisateur appuie sur le bouton pour la première fois, la feuille s'affiche partiellement :
Si l'utilisateur balaie la feuille vers le haut, elle remplit l'écran :