kotlin - 重构后,BottomSheetScaffold 组件不受约束
问题描述
我正在尝试拥有一个干净的BottomSheetScaffold
组件,但是当我调用侦听器来重构BottomSheetScaffold
内容时,看起来该组件不再受到限制。例如,在下面的可组合函数中:
@ExperimentalMaterialApi
@Composable
fun HomeScreen() {
val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = BottomSheetState(BottomSheetValue.Collapsed)
)
val (buttonText, setButtonText) = remember {
mutableStateOf("Button")
}
var sheetPeekHeightValue by remember {
mutableStateOf(50.0)
}
val coroutineScope = rememberCoroutineScope()
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetContent = {
Box(
Modifier
.fillMaxWidth()
.height(200.dp)
) {
Text(text = "Hello from sheet")
}
}, sheetPeekHeight = sheetPeekHeightValue.dp
) {
Button(onClick = {
coroutineScope.launch {
if (bottomSheetScaffoldState.bottomSheetState.isCollapsed) {
bottomSheetScaffoldState.bottomSheetState.expand()
} else {
bottomSheetScaffoldState.bottomSheetState.collapse()
}
}
}) {
Text(text = buttonText)
}
Button(onClick = {
setButtonText(buttonText + ".")
//sheetPeekHeightValue += .01
}){Text("Changing Text Button")}
}
}
“buttonText”按钮一直有效,直到我单击“Changing Text Button”按钮。
如果该行sheetPeekHeightValue += .01
没有被注释,它将重新组合 BottomSheetScaffold 但这并不干净。
在内容中重构是BottomSheetScaffold
一种好习惯吗?如果是,我应该如何正确地做到这一点?