Jetpack Compose Bottom Sheet 初始化错误

Jetpack Compose Bottom Sheet initialization error

在 Jetpack compose 1.0.0-beta01 中,我这样调用 BottomSheetScaffold:

BottomSheetScaffold(
    scaffoldState = bottomSheetScaffoldState,
    sheetContent = { Text("") },
    sheetShape = Shapes.large,
    backgroundColor = AppTheme.colors.uiBackground,
    modifier = modifier
    
) { (content) }

...并出现以下错误:

java.lang.IllegalArgumentException: The initial value must have an associated anchor.

关于解决此问题的任何提示?

不要忘记添加以下属性:

sheetPeekHeight = 0.dp

所以你的代码应该是这样的:

BottomSheetScaffold(
    scaffoldState = bottomSheetScaffoldState,
    sheetContent = { Text("") },
    sheetShape = Shapes.large,
    sheetPeekHeight = 0.dp, // <--- new line
    backgroundColor = AppTheme.colors.uiBackground,
    modifier = modifier
    
) { (content) }

如果您因为使用 BackdropScaffold 而最终进入此页面,建议的解决方案也可以解决问题。只需设置 peekHeight。 例如像这样:

BackdropScaffold(
        appBar = {},
        backLayerContent = {},
        frontLayerContent = {},
        peekHeight = 0.dp
    )

然后预览再次发挥作用。

但有趣的事实:不要将它设置为 56.dp,这是默认的初始值,通常应该使用(BackdropScaffoldDefaults.PeekHeight 的值)进行初始化。 56.dp 导致我当前设置中出现锚渲染问题。 (使用撰写版本“1.1.1”)

当bottomSheetState展开时,sheetContent必须有真实的内容才能显示。

你需要检查这个。