Sou*_*313 13 android kotlin bottom-sheet android-jetpack-compose android-jetpack-compose-material3
在 XML 中,我们有 Material3 底部工作表。它允许我们设置底部工作表的行为。它可以像这样更新:
bottomSheetBehavior.halfExpandedRatio = 0.6
bottomSheetBehavior.state = BottomSheetBehavior.STATE_HALF_EXPANDED
Run Code Online (Sandbox Code Playgroud)
我正在将项目迁移到 Compose。我的应用程序将这个半展开比例用于 3 个定位的底部工作表:折叠、半展开、展开。现在我正在尝试创建这样的底表:
val sheetState = rememberBottomSheetState(
initialValue = BottomSheetValue.Collapsed
)
val scaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = sheetState
)
BottomSheetScaffold(
scaffoldState = scaffoldState,
sheetContent = {}
) {}
Run Code Online (Sandbox Code Playgroud)
但看起来我们这里没有这些行为属性。我们能否获得与 XML 中具有一半展开的底部表相同的行为?
是的,这是可能的。但这是一点点工作。您基本上必须提供自己的类实现BottomSheetScaffold以及SwipeableState这两者使用的任何相关枚举、类和可组合函数。
需要重点关注的要点:
BottomSheetValue为半展开状态提供第三个值expand()和)以及检查底部工作表是否半展开的属性(类似于)collapse()BottomSheetStateval isExpanded: Booleanswipeable anchor到BottomSheetScaffold您想要实现的一半扩展值(检查行fullHeight - peekHeightPx to Collapsed,这里是您想要添加自定义锚点的位置).semantics块中的半展开状态ModifierBottomSheetScaffold您可能需要根据您的具体要求进行更多调整。设置所有内容可能需要一段时间,但一旦完成,它就会发挥作用。
| 归档时间: |
|
| 查看次数: |
2602 次 |
| 最近记录: |