然而,不清楚您期望的具体UI设计是怎样的,您可以考虑以下几点:
白色背景颜色:如果列表项内部组件具有白色背景,您需要检查“Why you extend your listing?”这个组件并移除其背景色。
底部抽屉圆角形状:如果您希望底部抽屉具有圆角形状,您需要为 sheetBackgroundColor
属性添加一个背景颜色,例如使用 MaterialTheme.colors.background.copy(alpha = 0.3f)
,这样可以得到半透明效果的同时保持形状。
使用内置动画替代 AnimatedVisibility:建议利用 BottomSheetScaffold 内置的动画特性来控制底部抽屉的显示和隐藏,而非使用 AnimatedVisibility。以下是调整后的代码示例:
BottomSheetScaffold(
modifier = Modifier // 可选系统内边距
.navigationBarsPadding()
.imePadding()
.displayCutoutPadding(),
scaffoldState = bottomSheetScaffoldState,
backgroundColor = if (bottomSheetType != "NONE") Color.Black.copy(alpha = 0.9f) else Color.Transparent, // 根据条件设置背景色(这里是半透明黑色或透明)
sheetBackgroundColor = MaterialTheme.colors.background.copy(alpha = 0.3f), // 底部抽屉背景为半透明主题背景色
sheetElevation = 0.dp, // 抽屉阴影高度设为0dp
sheetShape = RoundedCornerShape(topStart = 8.dp, topEnd = 8.dp), // 设置顶部两侧圆角为8.dp
sheetPeekHeight = 0.dp, // 预览高度设为0dp,即完全展开才可见
sheetContent = {
Column(Modifier.padding(16.dp)) {
Icon(
modifier = Modifier.padding(vertical = 16.dp),
imageVector = Icons.Rounded.Close,
contentDescription = ""
)
Text(text = "Hello World")
Text(text = "Hello World")
Text(text = "Hello World")
Text(text = "Hello World")
}
}
) {}
附带一张示意图链接:
这段代码中,底部抽屉在展开时将呈现带有圆角、半透明背景的内容,并且根据条件设置了整个 Scaffold 的背景颜色。同时,它还利用了 BottomSheetScaffold 的默认动画效果,并对内容区域进行了布局和样式设定。