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