Android Jetpack Compose:禁用与TextField的交互

Android Jetpack Compose:禁用与TextField的交互,android,android-textinputlayout,android-jetpack-compose,android-compose-textfield,Android,Android Textinputlayout,Android Jetpack Compose,Android Compose Textfield,有没有办法禁用Jetpack Compose的文本字段的所有交互?我的项目在alpha08atm上。希望他们能很快添加一些内置方式,但与此同时,我一直在这样做: val textState = remember { mutableStateOf(TextFieldValue()) } val disabled = remember { mutableStateOf(true) } Box { TextField(value = textState.value, onValueChange =

有没有办法禁用Jetpack Compose的文本字段的所有交互?

我的项目在
alpha08
atm上。希望他们能很快添加一些内置方式,但与此同时,我一直在这样做:

val textState = remember { mutableStateOf(TextFieldValue()) }
val disabled = remember { mutableStateOf(true) }
Box {
  TextField(value = textState.value, onValueChange = {
    textState.value = it
  })
  if (disabled.value) {
    // Set alpha(0f) to hide click animation
    Box(modifier = Modifier.matchParentSize().alpha(0f).clickable(onClick = {}))
  }
}
是的,在文本框上画一个大小相同的不可见的可点击框。您可以根据需要调整文本字段的大小,在不可见框上调用
.matchParentSize()
,将使其与文本字段匹配,因为它们是父框中唯一的子项

您可以通过在适当的地方设置
disabled.value=true/false
来切换禁用状态。

使用
1.0.0
(使用
1.0.0-beta07测试)您可以使用以下属性:

enabled
:控制
文本字段的启用状态。当
false
时,文本字段将既不可编辑也不可聚焦,文本字段的输入将不可选择,可视文本字段将显示在禁用的UI状态

比如:

var text by rememberSaveable { mutableStateOf("Text") }

TextField(
    value = text,
    onValueChange = { text = it },
    enabled = false,
    label = { Text("Label") },
    singleLine = true
)

这是目前已知的功能请求:这可能有助于: