Flutter 遇到问题:TextField清空字符串,TextEditingController问题

今天写代码练习的时候突然想删除TextFiled上面的问题,结果死活删不掉,搜也寥寥无几,在这里写个笔记也供大家参考~

遇到问题

TextEditingController没有反应,而且会一直刷新TextFiled使文字一直赋值不上,先来看看效果吧:


TextEditingController _textcontroller;

TextField(
          controller: _textcontroller = TextEditingController(),
          decoration: InputDecoration(
            hintText: "请输入存储值",
            suffixIcon: IconButton(
              icon: Icon(Icons.delete),
              onPressed: (){
                setState(() {
                  _textcontroller?.clear();
                });

              },
            )
          ),
          onChanged: (value) {
          },
        ),

效果图:
在这里插入图片描述
看着就很奇怪,然后通过我长达10分钟的思考以及百度找到了出错的问题

问题就出在TextEditingController()上,因为我每次输入的时候每次都其实会在内部刷新TextField,然后每次刷新的时候都会重新创建TextEditingController(),所以我只要让TextEditingController()创建一次即可了

在来看看更改后的代码吧:

final TextEditingController _textcontroller  = TextEditingController();

 TextField(
          controller: _textcontroller ,
          decoration: InputDecoration(
            hintText: "请输入存储值",
            suffixIcon: IconButton(
              icon: Icon(Icons.delete),
              onPressed: (){
                setState(() {
                  _textcontroller.clear();
                });
              },
            )
          ),
          onChanged: (value) {
       
          },
        ),

没错,就是使用final修饰一下就好啦,然后点击后面的垃圾桶就可以删除,删除是调用的_textcontroller.clear();方法

来看看效果图吧:
在这里插入图片描述
如果对TextField不熟悉的,请点击Flutter StatefluWidget与基础组件(1.2),在这篇中我有对TextField的介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s10g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值