如何在 Jetpack Compose 中让 Bottom Sheet 覆盖整个屏幕

How do I make Bottom Sheet cover whole screen in Jetpack Compose

我正在使用 Jetpack Compose 并尝试在用户单击 TopAppBar 中的登录按钮时让登录屏幕覆盖整个屏幕。

我正在使用 ModalBottomSheetLayoutScaffold 的组合,所以我可以使用 TopAppBarBottomAppBar

目前显示登录界面时只覆盖一半屏幕。

                       val coroutineScope = rememberCoroutineScope()
                        val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
                        ModalBottomSheetLayout(
                            sheetState = bottomState,
                            sheetShape = MaterialTheme.shapes.large,
                            sheetContent = {
                                FullScreen()
                            }
                        ) {

                            Scaffold(
                                topBar = {
                                    TopAppBar(
...
                                content = {

                                    NavHost(navController = navController,
                                        startDestination = "journey") {
                                        composable("journey") { JourneyScreen() }
...
                               bottomBar = {
                                    BottomAppBar(
                                        content = {
                                            BottomNavigation() {

                                                val navBackStackEntry by navController.currentBackStackEntryAsState()
...

@Composable
fun FullScreen() {
    Box(modifier = Modifier
        .fillMaxSize()
    ) {
        Text("Full Screen")
    }
}

在此问题上停留的时间太长了,我们将不胜感激。

要全屏 ModalBottomSheetLayout,而不是 state.show(),请使用:

scope.launch { state.animateTo(ModalBottomSheetValue.Expanded) }