我的目标是在我的代码中有一个变量,我可以简单地将其设置为true,然后重叠的Composable将在中间显示一个小CircularProgressIndicator
和一个浅灰色的透明背景,该背景阻止视图下的输入。很多工作,除了一件事:我仍然可以在背景下按按钮。这是我的代码:
@Composable
fun ViewWithOverlaysView(mutableState: MutableState<Boolean>) {
Box {
Button(onClick = {
println("Pressed!!")
mutableState.value = true
}) {
Text("XX")
}
Spacer(modifier = Modifier.height(Dp(100f)))
LoadingView(mutableState = mutableState)
}
}
@Composable
fun LoadingView(mutableState: MutableState<Boolean>) {
if (mutableState.value) {
Box(
modifier = Modifier
.fillMaxSize()
.background(
Color.LightGray.copy(alpha = 0.5f)
)
) {
Center {
CircularProgressIndicator()
}
}
}
}
现在看起来像这样,XX
按钮仍然可以按下。如何确保用户看到透明的背景,但无法按下LoadingView
下方的任何按钮?
2条答案
按热度按时间x8goxv8g1#
将此修改器添加到
Box
工作:ajsxfq5m2#
您可以使用
Button
组合的enabled
属性来控制其可点击性: