找不到同时使用底部弹出菜单和底部导航栏的方法,在Android Compose中。

10
在 Android Compose 中,有 Scaffold 组合函数用于创建包含底部导航栏的布局,还有另一个名为 BottomSheetScaffold 的函数用于创建包含底部导航栏的布局。
我的问题是如何在同一布局中实现底部菜单和底部抽屉?

我尝试使用 BottomSheetScaffold 并在布局中添加底部导航栏,但当我在同一列中使用 NavHost 时失败了。

该情况的简化代码:

    BottomSheetScaffold(
        { BottomSheetComposable },

        topBar = {
            TopAppBar()
        },
        sheetPeekHeight = 0.dp
    ) {
        Column() {
            NavHost(
                navController,
                startDestination = "route"
            ) {
                Composable("route") {}
            }
            Box(
                modifier = Modifier
                    .fillMaxWidth()
                    .height(60.dp)
            ) {
                BottomNavigationBar()
            }

        }
    }

1个回答

8

一个临时解决方案是在BottomSheetScaffold的内容中使用scaffold

    BottomSheetScaffold(
        sheetShape = BottomSheetShape,
        sheetContent = {
            currentBottomSheetScreen?.let {
                MainBottomSheetLayout(
                    it, navController, textToSpeech,
                    closeSheet
                )
            }


        }) {
        Scaffold(
            topBar = { LinguisticTopAppBar(navController, mainViewModel, openSheet) },
            bottomBar = {
                BottomNavigationBar(mainViewModel, navController)
            },

            ) {

            Column(modifier = Modifier.padding(it)) {
                MainContent(
                    navController,
                    mainViewModel,
                    openSheet
                )
            }
        }

    }

可以申请回答这个问题吗?(https://dev59.com/U3ANtIcB2Jgan1zntT20) - user10991969

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接