Alt sayfalar

Materyal Tasarım 3 modal alt sayfa örneği.

Alt sayfa uygulamak istiyorsanız ModalBottomSheet bileşenini kullanabilirsiniz.

Sayfa içeriği bileşenlerini bir sütunda düzenleyen 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şletip daraltmak için SheetState simgesini kullanın. sheetState parametresi ile ModalBottomSheet'e iletilmesi gereken bir SheetState örneği oluşturmak için rememberSheetState 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 için bir CoroutineScope gerekir (ör. rememberCoroutineScope kullanılarak). Bu işlevleri kullanıcı arayüzü etkinliklerine yanıt olarak çağırabilirsiniz. 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")
            }
        }
    }
}

Jetpack Compose'da içerik gösteren modal alt sayfa.