在flutter开发中,加载某一段文字后需要对该文字进行更改的时候,使用controller设置默认值,这个时候光标会在文字的最前面,设置selection改变光标位置到最后,但是在编辑的时候删除以前的文字中的某个位置的字符光标会返回到文段末尾。不使用onChanged事件接收文本数据。
解决办法:1,设置controller
controller: TextEditingController
.fromValue(
TextEditingValue(
text: f.remarkResult ?? "",
selection:TextSelection.fromPosition(
TextPosition(
affinity:TextAffinity.downstream,
offset: f.remarkResult == null
? 0
: f.remarkResult.length,
))
)
),
2,使用onSubmitted事件
onSubmitted: (value){
this.setState(() {
f.remarkResult = value;
});
},
3,设置提交按钮类型
textInputAction: TextInputAction.go,