Flutter TextFilde输入空格问题

912 阅读1分钟

TextFilde设置了, textAlign: TextAlign.right,或 textAlign: TextAlign.center 导致末尾输入空格有问题问题?

解决办法

在 addListener 的时候加上这句话.

  • TextControlUtils.setSpaceTextControl(nameTextControl);
nameTextControl =
    TextEditingController(text: patientManagerBean.userName ?? "");
    nameTextControl.addListener(() {
    TextControlUtils.setSpaceTextControl(nameTextControl);
    widget.patientUpdateCallback(getCanSave());
});
  • TextControlUtils封装
class TextControlUtils{
  //这里面暂时只有一个方法 处理当设置  为  TextAlign.right 活  TextAlign.end 末尾输入空格问题
   static void setSpaceTextControl(TextEditingController textEditingController){
     String oldString = textEditingController.text;
     print(oldString.isNotEmpty);
     if(oldString.lastIndexOf(" ")==oldString.length-1&&oldString.isNotEmpty){
       textEditingController.text = oldString.replaceAll(" ", "\u{00a0}");
       textEditingController.selection = TextSelection.fromPosition(TextPosition(
           affinity: TextAffinity.downstream,
           offset: textEditingController.text.length));
     }
   }
 }