【问题标题】:OutlineTextField , TextField not working in Jetpack Compose 1.0.0-alpha02OutlineTextField ,TextField 在 Jetpack Compose 1.0.0-alpha02 中不起作用
【发布时间】:2020-09-15 02:18:09
【问题描述】:

出于某种原因,CoreTextField 可以工作,但 TextField 和 OutlineTextField 不能

作品

@Composable
fun TextFieldDemo(){
    val text = remember { mutableStateOf(TextFieldValue("Text")) }
    CoreTextField(modifier = Modifier.fillMaxWidth(),
            value = text.value,
            onValueChange = {text.value = it})
}

不工作

    @Composable
fun TextFieldDemo(){
    val text = remember { mutableStateOf(TextFieldValue("Text")) }
    OutlinedTextField(value = text.value,
            onValueChange = {text.value = it}, label = {Text("Test")})
}

错误:OutlinedTextField 不能调用以下函数

从文档更改

Bug Fixes

androidx.ui.foundation.TextFieldValue and androidx.ui.input.EditorValue are deprecated. TextField, FilledTextField and CoreTextField composables that uses that type is also deprecated. Please use androidx.ui.input.TextFieldValue instead (I4066d, b/155211005)

但我正在使用它所说的(我认为)

编辑

【问题讨论】:

  • “但我正在使用它所说的(我认为)”——你确定你有正确的 importandroidx.ui.input.TextFieldValue 吗?
  • 当我导入它时让我导入这个 import androidx.compose.ui.text.input.TextFieldValue
  • 好的,实际上,这应该是正确的(我是根据您引用的文档进行的,该文档本身已过时)。而你正在使用androidx.compose.material.OutlinedTextField
  • 使用1.0.0-alpha02,这段代码应该可以工作。正确的导入是androidx.compose.ui.text.input.TextFieldValueandroidx.compose.material.OutlinedTextField
  • 我已经用代码@GabrieleMariotti 更新了问题

标签: android kotlin android-jetpack-compose


【解决方案1】:

您在原始问题中缺少“标签”参数,如图所示。遵循 Gabriele 的评论使其工作,所以你不应该用答案改变问题,这很令人困惑。

仅作记录,这里是在 1.0.0-alpha02 中工作的代码:

@Composable
fun TextFieldDemo() {
    val text = remember { mutableStateOf(TextFieldValue("Text")) }
    OutlinedTextField(value = text.value,
        onValueChange = { text.value = it },
        label = { Text("Test") })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2022-07-29
    • 2021-11-14
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多