flutter TextField删除文字后光标跑到文字末尾

在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,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章