Oli*_*etz 3 android android-jetpack-compose android-jetpack-compose-material3
似乎ModalBottomSheet默认显示,尽管它实际上应该隐藏(rememberModalBottomSheetState用 an 启动状态initialValue : SheetValue = Hidden)。显然这里缺少一些东西。
val bottomSheetState = rememberModalBottomSheetState()
ModalBottomSheet(
onDismissRequest = { /*TODO*/ },
sheetState = bottomSheetState,
containerColor = Color.White,
) {
Text(text = "Why am I showing?", color = Color.Black)
}
Run Code Online (Sandbox Code Playgroud)
调用bottomSheetState.hide()似乎也没有任何效果。
使用 Jetpack Compose BOM 2023.06.00,但在 2023.05.01 上获得相同的行为。
小智 5
终于弄清楚了!新的 ModalBottomSheet 有条件地显示,因此类似这样的操作应该有效:
val openBottomSheet = rememberSaveable { mutableStateOf(false) }
val bottomSheetState = rememberModalBottomSheetState()
if (openBottomSheet) {
ModalBottomSheet(
onDismissRequest = { openBottomSheet = false },
sheetState = bottomSheetState,
containerColor = Color.White,
) {
Text(text = "Why am I showing?", color = Color.Black)
}
}
Run Code Online (Sandbox Code Playgroud)