flutter textfiled填入内容

场景:在历史搜索过程中,点击某个搜索热点词,自动将该词填入,并进行搜索。

如下gif图:

在这里插入图片描述

这时候我们自动填充教师资格证的内容,然后可以进行删除重新操作等,此时用的不再是hintText这个属性,而是用TextEditingController来进行控制,

具体代码如下:

  Widget searchBar() {
    TextEditingController controller = TextEditingController.fromValue(
        TextEditingValue(
            text: _searchContent,
            selection: new TextSelection.fromPosition(TextPosition(
                affinity: TextAffinity.downstream,
                offset: _searchContent.length))));

    return Container(
      child: Row(
        children: <Widget>[
          Expanded(
            child: Container(
              alignment: Alignment.center,
              child: Padding(
                padding: EdgeInsets.only(left: 10),
                child: TextField(
                  controller: controller,
                  decoration: InputDecoration(
                    hintText: "请输入想搜索的内容 $_searchContent",
                    border: InputBorder.none,
                  ),
                  onChanged: searchContentChange,
                  style:
                      TextStyle(color: MyColorRes.subTextColor, fontSize: 14),
                  onSubmitted: (content) {
                    if (content.isNotEmpty) {
                      print("content onSubmitted ===============    $content");
                      _searchContent = content;
                      getSearchContentResult();
                    }else {
                      ToastUtil.showBottomToast("请输入搜索内容");
                    }
                  },
                ),
              ),
              decoration: BoxDecoration(
                color: MyColorRes.divideLine,
                borderRadius: BorderRadius.all(Radius.circular(20)),
                border: Border.all(color: Colors.white, width: 1.0),
              ),
            ),
            flex: 1,
          ),
          Container(
            margin: const EdgeInsets.only(right: 10, left: 10),
            child: InkWell(
              onTap: () {
                Application.router.pop(context);
              },
              child: Text(
                "取消",
                style: TextStyle(color: Colors.black, fontSize: 16),
              ),
            ),
          )
        ],
      ),
      height: 40.0,
    );
  }

主要是用到了TextEditingController.fromValue这个功能。

Flutter移动电商,关注公众号:蛇崽网盘资源,回复【Flutter移动电商】,即可领取。

关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

更多资源请访问:

超详细图文搭建个人免费博客

关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序

在这里插入图片描述

### 实现 FlutterTextField 计数器的方法 在 Flutter 应用程序中,为了实现在 `TextField` 组件旁边显示输入字符数量的功能,可以创建一个状态管理机制来跟踪文本字段中的字符长度。下面是一个具体的实现案例: #### 创建计数器功能的 StatefulWidget 通过定义一个新的 `StatefulWidget` 来封装具有计数逻辑的 `TextField` 和用于展示当前字数的小部件。 ```dart class CounterTextField extends StatefulWidget { @override _CounterTextFieldState createState() => _CounterTextFieldState(); } class _CounterTextFieldState extends State<CounterTextField> { TextEditingController _controller = TextEditingController(); int get _textLength => _controller.text.length; void dispose(){ _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Column( children: [ TextField( controller: _controller, onChanged: (String text){ setState(() {}); }, ), Padding(padding: EdgeInsets.all(8)), Text('${_textLength} characters'), ], ); } } ``` 此代码片段展示了如何监听 `TextField` 的变化并更新界面上的文字计数[^1]。 #### 将组件集成到应用界面 为了让上述自定义组件生效,在主应用程序布局文件里引入它作为子级元素之一即可完成整个过程。 ```dart home: Scaffold( appBar: AppBar(title: Text('TextField with Character Count')), body: Center(child: CounterTextField()), ), ``` 这样就实现了当用户向 `TextField` 输入内容时自动统计已键入字符数目,并实时反映给用户的特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值