Dav*_*him 6 android android-jetpack android-jetpack-compose
在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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
临时解决方案是使用scaffold内部BottomSheetScaffold内容
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
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |