我想在Jetpack Compose中BasicTextfield的值更改时执行一些代码。
在以下两种情况下一切正常:
- 任何数值变化。
- 如果使用设备键盘清除了所有文本字段值
但是,当我尝试更改状态值为空文本点击按钮,使用以下代码:
textfieldstate.value = TextFIeldValue("")
不触发onValueChange。
不过如果我将其设置为任何其他值,就会触发onValueChange。
textfieldstate.value = TextFIeldValue("FOO")
按钮/图标点击代码:
Icon(modifier = Modifier.clickable {
textfieldstate.value = TextFieldValue("")
}) {.....}
当从外部按钮单击事件中清除字段值时,是否有方法触发BasicTextField的onValueChange?
2条答案
按热度按时间ki1q1bka1#
如果你想一次做这一切,这是更多的建议,我会这样做:
上面的代码主要是提升TextField的状态,处理viewModel中的所有事情,用数据类 Package 一层UI状态,如果有其他的需求,也可以添加不同的参数,比如如果TextField有错误,可以写成:
nbysray52#
onValueChange
回调函数对于获取用户输入文本的最新状态非常有用,如果你想在(textFieldValue
)的状态改变时触发一些动作,你可以使用像LaunchedEffect
这样的副作用。比如: