Alt sayfa uygulamak istiyorsanız ModalBottomSheet
composable'ı kullanabilirsiniz.
Sayfa içeriği composable'larını bir sütunda düzenlemek için ColumnScope
kullanan content
yuvasını kullanabilirsiniz:
ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) { // Sheet content }
Sayfa durumunu programatik olarak kontrol etme
Sayfayı programatik olarak genişletmek ve daraltmak için SheetState
kullanın. SheetState
öğesinin ModalBottomSheet
öğesine sheetState
parametresiyle iletilmesi gereken bir örneğini oluşturmak için rememberSheetState
öğesini kullanabilirsiniz. SheetState
, show
ve hide
işlevlerinin yanı sıra geçerli sayfa durumuyla ilgili özelliklere erişim sağlar. Bu askıya alma işlevleri CoroutineScope
gerektirir (ör. rememberCoroutineScope
kullanma) ve bunları kullanıcı arayüzü etkinliklerine yanıt olarak çağırabilirsiniz. Alt sayfayı gizlediğinizde ModalBottomSheet
öğesini kompozisyondan 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") } } } }