android - 如何在 Jetpack compose 中使用 EditText 或 TextInput 小部件?
问题描述
我通过尝试一些像 Image 和 EditText 这样的小部件来探索 Jetpack compose。
对于文本输入,它具有EditableText
. 我试过下面的代码,但它没有在 UI 中显示任何内容
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
loadUi()
}
}
@Composable
fun loadUi() {
CraneWrapper {
MaterialTheme {
val state = +state { EditorState("") }
EditableText(
value = state.value,
onValueChange = { state.value = it },
editorStyle = EditorStyle(
textStyle = TextStyle(
fontSize = (50f)
)
)
)
}
}
}
}
我在这里想念什么?任何帮助,将不胜感激!
解决方案
正如Gabriele Mariotti的回答所述,这是正确的做法:
var text by rememberSaveable { mutableStateOf("Text") }
TextField(
value = text,
onValueChange = {
text = it
},
label = { Text("Label") }
)
但是,如果您遇到以下错误:
类型“TypeVariable(T)”没有方法“getValue(MainActivity, KProperty<*>)”,因此它不能用作委托
只需将这两个导入添加到您的文件中,您就可以了:
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
推荐阅读
- xslt - 使用 XSLT 如何在混合内容中的元素前后添加元素?
- javascript - 在 ffmpeg 中使用内容类型 quicktime 时会抛出错误“找不到 moov”
- r - 删除列名中特殊字符之后的所有字符
- python - 我的嵌套 for 循环的麻烦实现类似于 sumif 的结果
- vb.net - 在进行视觉基础绘画时,是否可以用笔使用颜色对话?
- javascript - 使用循环推送到一个数组,该数组是 Map 中的一个值
- android - Android性能优化调度延迟
- javascript - 如果搜索包含括号或方括号,RegEx 匹配将返回 undefined
- ruby-on-rails - 门卫外键违反访问授权
- php - 用 php rand() 数字填充 html 表