Alt sayfa uygulamak istiyorsanız ModalBottomSheet
composable'ı kullanabilirsiniz.
Sayfa içeriğini composable'lar sütuna yerleştirmek için ColumnScope
kullanan content
alanını kullanabilirsiniz:
ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) { // Sheet content }
Sayfayı programatik olarak genişletme ve daraltma işlemi, SheetState
kullanılarak yapılır. sheetState
parametresiyle ModalBottomSheet
öğesine iletilmesi gereken bir SheetState
örneği oluşturmak için rememberSheetState
kullanabilirsiniz. SheetState
, show
ve hide
işlevlerinin yanı sıra geçerli e-tablo durumuyla ilgili özelliklere erişim sağlar. Bu askıya alma işlevleri, bir CoroutineScope
gerektirir (örneğin, rememberCoroutineScope
kullanarak) ve kullanıcı arayüzü etkinliklerine yanıt olarak çağrılabilir. Alt sayfayı gizledikten sonra bileşimden ModalBottomSheet
öğesini kaldırdığınızdan emin olun.
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") } } } }