在底部工作表折叠模式下,FAB的一半被隐藏。下面是代码。如果我只使用Scaffold
,这个问题就不会出现。
class MainActivity : ComponentActivity() {
@ExperimentalMaterialApi
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ScaffTestTheme {
val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = BottomSheetState(BottomSheetValue.Collapsed)
)
val scope = rememberCoroutineScope()
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetContent = {
Text("Hello", modifier = Modifier.padding(20.dp))
},
sheetPeekHeight = 0.dp,
floatingActionButton = {
FloatingActionButton(onClick = {}) {
Icon(Icons.Filled.Add, contentDescription = "Add")
}
}
) {
TextButton(onClick = {
scope.launch {
if (bottomSheetScaffoldState.bottomSheetState.isCollapsed) {
bottomSheetScaffoldState.bottomSheetState.expand()
} else {
bottomSheetScaffoldState.bottomSheetState.collapse()
}
}
}) {
Text("Toggle")
}
}
}
}
}
}
我是这样看的:
3条答案
按热度按时间7gcisfzg1#
@srvy我也遇到过和你一样的问题,经过一些研究和查看BottomSheetScaffold的组件,我已经设法找到了解决方案。
在BottomSheetScaffold中添加以下参数:
您可以编辑sheetPeekHeight来改变FloatingActionButton的距离,其他两个则不行。在您的程式码中,它看起来会像这样:
h5qlskok2#
看起来
BottomSheetScaffold
的设计总是让工作表的一部分可见,而FAB部分覆盖它。这不是我想要的行为,也不是你想要的。可以使用BottomDrawerModal
,但我不希望它是模态的。我使用了一个自定义的布局来奠定晶圆厂一半的高度以上的脚手架奠定了它。
7y4bm7vi3#
除了提供的答案外,您还可以考虑此答案。
这有点乏味,因为使用这种方法,您必须
sheetPeekHeight
设置为scaffold,并将其设置为工作表内容的top
填充sheetBackgroundColor
设置为与content{…}
背景颜色相同的颜色sheetElevation
为0.dp
以在修改背景颜色时隐藏底部工作表的边缘边框调用站点用法:
所有这些代码都可以复制粘贴。