Alt sayfalar

Alt sayfa uygulamak isterseniz ModalBottomSheet composable'ı kullanabilirsiniz.

Bir sütunda sayfa içeriği composable'larını düzenlemek için ColumnScope kullanan content alanını kullanabilirsiniz:

ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) {
    // Sheet content
}

E-tablonun programatik olarak genişletilmesi ve daraltılması SheetState kullanılarak yapılır. sheetState parametresi ile ModalBottomSheet'e iletilmesi gereken bir SheetState örneği oluşturmak için rememberSheetState kullanabilirsiniz. SheetState, show ve hide işlevlerine ve mevcut sayfa durumuyla ilgili özelliklere erişim sağlar. Bu askıya alma işlevleri için CoroutineScope gerekir (ör. rememberCoroutineScope kullanılarak) ve kullanıcı arayüzü etkinliklerine yanıt olarak çağrılabilir. Alt sayfayı gizledikten sonra ModalBottomSheet'yi 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")
            }
        }
    }
}