【问题标题】:Android Jetpack compose (1.0.0-beta07): TextField - None of the following functions can be called with the arguments suppliedAndroid Jetpack compose (1.0.0-beta07):TextField - 不能使用提供的参数调用以下函数
【发布时间】:2021-08-31 18:33:23
【问题描述】:

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

以下是我的书面代码,其中 Studio 仍然在 Text (label)text = it 下划线,但我认为它在定义 TextField 时存在问题。当我将remember {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)
    )
}

【问题讨论】:

    标签: android android-jetpack-compose android-jetpack-compose-text


    【解决方案1】:

    你可以使用:

    var text = remember { mutableStateOf("text") }
    
    TextField(
        value = text.value,
        onValueChange = {
            text.value = it
        },
        label = { Text(label) },
        keyboardOptions = KeyboardOptions(keyboardType = keyboardType)
    )
    

    或:

    var text by remember { mutableStateOf("text") }
    
    TextField(
        value = text,
        onValueChange = {
            text = it
        },
        label = { Text(label) },
        keyboardOptions = KeyboardOptions(keyboardType = keyboardType)
    )
    

    您可以在官方文档中阅读有关delegated properties 的更多信息。

    【讨论】:

    • 这个解决方案正是我想要的。
    • 不幸的是,错误仍然存​​在:var text by remember { mutableStateOf("Text") } TextField(modifier = Modifier.fillMaxWidth(), value = text, onValueChange = { value -> text =值},标签=文本(“标签”),键盘类型=键盘类型。文本)
    • 编写 1.0.0-rc02
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2018-10-03
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多