为什么我的 bottomSheet 来自喷气背包撰写中的屏幕顶部

Why my bottomSheet comes from the top of screen in the jetpack compose

提问人:Saeed Noshadi 提问时间:10/27/2021 更新时间:7/19/2022 访问量:951

问:

我有一个bottomSheet,但是当屏幕显示时,它从屏幕顶部到底部。我该如何解决?

这是我的 bottomSheet 代码:

@ExperimentalMaterialApi
@Composable
fun BottomSheet(
    modifier: Modifier = Modifier,
    buttonText: String,
    composable: @Composable () -> Unit,
    scope: CoroutineScope
) {
    val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
        bottomSheetState = BottomSheetState(BottomSheetValue.Expanded)
    )
    BottomSheetScaffold(
        scaffoldState = bottomSheetScaffoldState,
        sheetContent = {
            Column(
                Modifier
                    .fillMaxWidth()
                    .height(200.dp)
                    .padding(8.dp),
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally
            ) {
              
                Button(colors = ButtonDefaults.buttonColors(
                    backgroundColor = AppColor.brandColor.BLUE_DE_FRANCE,
                    contentColor = AppColor.neutralColor.DOCTOR
                ),
                    shape = RoundedCornerShape(
                        small
                    ),
                    onClick = {
                        scope.launch {
                            bottomSheetScaffoldState.bottomSheetState.collapse()
                        }
                    }) {
                }
            }
        },
        sheetPeekHeight = 0.dp,
        sheetShape = RoundedCornerShape(topEnd = medium, topStart = medium)
    ) {
        composable()
    }

}

可组合函数是 Google 地图屏幕

android-jetpack-compose 底表

评论

0赞 Phil Dukhov 10/27/2021
这可能是一个错误。如果用简单的东西替换,问题是否仍然会出现?您在哪些设备上复制了它?模拟器,真实设备?composable()Text()
0赞 Saeed Noshadi 10/27/2021
@PhilipDukhov当我将 composable() 更改为 Text() 时,它再次发生。我有一台真正的设备
1赞 Phil Dukhov 10/27/2021
您的代码在我的模拟器和真实设备上都能正常工作。在模拟器上尝试一下。
0赞 Sara Talaat 7/3/2022
@SaeedNoshadi我正在经历同样的行为,你弄清楚了吗?
0赞 Saeed Noshadi 7/5/2022
@SaraTalaat 这种方法不正确。您应该使用 bottomsheet 和 MainActivity,并在每个页面中调用 bottomsheet。使用此库:google.github.io/accompanist/navigation-material

答:

0赞 Alex Peterson 7/19/2022 #1

我的问题仅在预览中。当以交互方式或在模拟器中运行它时,它可以正常工作。如果您还没有,也许可以尝试一下。