所以我需要创建一个自定义的底部导航,上面的边框不是一条直线.
我已经成功地使自定义栏具有这个形状,我已经创建并剪裁了一个custom shape.
我的问题是,一旦我将导航栏传递到scaffold的BottomBar参数,它就会自动将我的栏的整个高度"保存"为屏幕内容之外的单独部分.
所以当有一个向下滚动的项目列表时,它被切成一条直线,而不是从我的自定义形状中间的半个圆圈的两侧显示出来.
只有当我在内容参数中的一个框内添加底部导航时,它才能工作(请参阅下面的代码),而不是将其作为脚手架的bottomBar参数传递,但这样我的导航就不会被视为应用程序内容填充的一部分,因此我需要 for each 屏幕添加底部间距,以确保视图不会在栏后丢失.
When no spacing added manually -
可以工作的代码,但没有在bottomNav参数中传递它-
Scaffold(
modifier = Modifier
.fillMaxSize(),
topBar = topBar,
// bottomBar = bottomBar, ** The problem is when passed here **
content = { paddingValues ->
Box(Modifier.padding(paddingValues)) {
content(paddingValues)
BottomNavigationBar(Modifier.align(Alignment.BottomCenter), navController)
}
}
)
Desired outcome while passing it as bottomNav param to scaffold - (Achieved it only by adding space manually like explained in previous paragraph)
设置透明背景不是解决方案,因为正如所述,当bar作为scaffold的bottomBar参数传递时,它会成为实际内容下方的一个单独区域.