Android Jetpack compose (1.0.0-beta07):TextField - 无法使用提供的参数调用以下函数

Hon*_*ler 16 android android-jetpack-compose android-compose-textfield

我开始使用 Jetpack compose (1.0.0-beta07),并且在 TextField 方面遇到了一个非常奇怪的问题。根据所有可能的文档和说明,我做的一切都是正确的,但是 Android Studio 不断给我写None of the following functions can be called with the arguments supplied.消息TextField

下面是我编写的代码,其中 Studio 仍然强调Text (label)text = it,但我认为它在定义 时存在问题TextFieldremember {mutableStateOf ("text")}当我替换为时,问题消失了"text",但TextField在键入键盘时不会更改文本。

import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.text.input.KeyboardType

@Composable
fun SimpleTextField(label: String = "Label", key: String = "unknown", keyboardType: KeyboardType = KeyboardType.Text){
    var text = remember {
        mutableStateOf("text")
    }

    TextField(
        value = text,
        onValueChange = {
            text = it
        },
        label = { Text(label) },
        keyboardOptions = KeyboardOptions(keyboardType = keyboardType)
    )
}
Run Code Online (Sandbox Code Playgroud)

错误图像

Gab*_*tti 4

您可以使用:

var text = remember { mutableStateOf("text") }

TextField(
    value = text.value,
    onValueChange = {
        text.value = it
    },
    label = { Text(label) },
    keyboardOptions = KeyboardOptions(keyboardType = keyboardType)
)
Run Code Online (Sandbox Code Playgroud)

或者:

var text by remember { mutableStateOf("text") }

TextField(
    value = text,
    onValueChange = {
        text = it
    },
    label = { Text(label) },
    keyboardOptions = KeyboardOptions(keyboardType = keyboardType)
)
Run Code Online (Sandbox Code Playgroud)

您可以在官方文档中阅读有关委托属性的更多信息。