flutter文本框TextField光标问题解决,文本框输入完成后点击空白,光标跑到最左边

有2种解决方案,第一种是点击文本框光标直接定位到最右侧,第二种方案是手指点到光标哪里,光标就到哪里.下面我依次为大家说明并奉上代码
第一种:最右侧(精简代码,只讲用到部分)

//先在类内定义这个变量
final TextEditingController _newPassword = TextEditingController();
//然后在他的TextField里面增加以下代码
//重点就在TextField里面的参数controller和onTap
//把这2个改成以下代码就能每次收缩键盘后再次点击到达文本框最右边
  TextField(
  obscureText: true,
  maxLines: 1,
  // maxLength: 16,
  inputFormatters: [
    LengthLimitingTextInputFormatter(16)
  ],
  controller: _newPassword0,
  textAlign: TextAlign.left,
  decoration: InputDecoration(
    hintText: getUItext()['enterNewPassword'],
    hintStyle:
        TextStyle(color: Colors.grey[400]),
    border: InputBorder.none,
  ),
  style: const TextStyle(fontSize: 20),
  onChanged: (value) {
    newPassword = value;
  },
  onTap: () {
    _newPassword0.selection =
        TextSelection.fromPosition(
      TextPosition(
          offset: _newPassword0.text.length),
    );
  },
),

第二种解决方案:光标点到文本哪里,文本就在哪里

//先在类内定义这个变量
final TextEditingController _oldPassword0 = TextEditingController();

//销毁这个_oldPassword0
 
 void dispose() {
   super.dispose();
   if (_oldPassword0 != null) {
     _oldPassword0.dispose();
     _oldPassword0.clear();
   }
 }
//重点就在TextField里面的参数controller
  TextField(
  obscureText: true,
  maxLines: 1,
  // maxLength: 16,
  inputFormatters: [
    LengthLimitingTextInputFormatter(16)
  ],
  controller: _oldPassword0,
  textAlign: TextAlign.left,
  decoration: InputDecoration(
    hintText: getUItext()['enterOldPassword'],
    hintStyle:
        TextStyle(color: Colors.grey[400]),
    border: InputBorder.none,
  ),
  style: const TextStyle(fontSize: 20),
  onChanged: (value) {
    oldPassword = value;
  },
),

第二种方法只要在dispose里面销毁他就能做到光标点到哪就在哪

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值