يمكنك عرض البطاقة السفلية جزئيًا ثم السماح للمستخدم بملء الشاشة أو إغلاقها.
لإجراء ذلك، اضبط 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
في ما يحدث عندما يحاول المستخدم إغلاق البطاقة السفلية. في هذه الحالة، ستتم إزالة الورقة فقط.
النتائج
عندما يضغط المستخدم على الزر لأول مرة، يتم عرض ورقة البيانات جزئيًا على النحو التالي:
![بطاقة سفلية تملأ في البداية جزءًا من الشاشة فقط. يمكن للمستخدم التمرير سريعًا لملء الشاشة بها أو تجاهلها](https://developer.android.google.cn/static/develop/ui/compose/images/components/bottom-sheet-partial.png?hl=ar)
إذا مرّر المستخدم سريعًا للأعلى في ورقة البيانات، تملأ الشاشة:
![بطاقة سفلية قام المستخدم بتوسيعها لملء الشاشة.](https://developer.android.google.cn/static/develop/ui/compose/images/components/bottom-sheet-fullscreen.png?hl=ar)