Flutter学习日记之表单组件TextField文本框的使用

本文地址:https://blog.csdn.net/qq_40785165/article/details/117628762,转载需附上此地址

大家好,我是小黑,一个还没秃头的程序员~~~

人生在勤,勤则不匮

今天分享的内容是Flutter中的TextField表单组件,是可以输入内容的文本框,源码地址:https://gitee.com/fjjxxy/flutter-study.git,效果如下:

以下正文按照效果图从上到下的顺序介绍

1.普通文本框

TextField()

2.带有下边界线的文本框

使用InputDecoration组件,默认就是下边界线的样式

TextField(
          decoration: InputDecoration(hintText: "请输入用户名"),
        )

3.带有边框的文本框

使用InputDecoration组件,添加border参数设置边框

TextField(
          decoration:
              InputDecoration(border: OutlineInputBorder(), hintText: "请输入用户名"),
        )

4.多行的文本框

通过设置maxLines可变成文本域,minLines控制初始的高度,如果没有minLines,文本框的初始高度就是最大行数的高度,比如下面代码中,文本框的初始高度是1行,最大高度是4行

             TextField(
          maxLines: 4,
          minLines: 1,
          decoration:
              InputDecoration(border: OutlineInputBorder(), hintText: "请输入用户名"),
        )

5.密码文本框

将obscureText参数设置为true

TextField(
          obscureText: true,
          decoration:
              InputDecoration(border: OutlineInputBorder(), hintText: "请输入密码"),
        ),

6.边框带标签的文本框

在InputDecoration组件中添加labelText参数,这个就是边框上的提示标签了。

        TextField(
          obscureText: true,
          decoration: InputDecoration(
              border: OutlineInputBorder(),
              labelText: "请输入密码",
              labelStyle: TextStyle(color: Colors.black)),
        )

7.带图标的文本框

参数说明
icon文本框外部左侧图标
prefixIcon文本框内部左侧图标
suffixIcon文本框内部右侧图标
        TextField(
          controller: this._text2,
          decoration: InputDecoration(
            icon: Icon(Icons.account_balance),
            prefixIcon: Icon(Icons.account_balance),
            suffixIcon: IconButton(icon: Icon(Icons.clear),onPressed: (){
              setState(() {
                this._text2.text="";
              });
            },),
            labelText: "请输入用户名",
          ),
        )

8.监听文本框的内容变化

监听文本变化有两种方式,一种是设置onChanged,将返回的内容存下来

 onChanged: (value) {
                print(value);
              }

还有一种是为文本框设置controller控制器参数,对应的是TextEditingController类,这个类只有一个参数,就是text,我们在文本内容改变之后获取这个参数的值就可以获取到文本内容了

TextEditingController _text = new TextEditingController(text: "初始值");
...

        Row(
          children: [
            Expanded(
                child: TextField(
              controller: this._text,
            )),
            ElevatedButton(
                onPressed: () {
                  Toast.toast(context, msg: "提交的值为${this._text.text}");
                },
                child: Text("提交")),
          ],
        )

如果TextEditingController的text参数有初始值的话,这个也会成为文本框的初始值

到此为止,Flutter中的TextField组件就介绍完毕了,多写才能熟能生巧,感兴趣的小伙伴可以下载源码看一下,希望大家可以点个star,支持一下小白的flutter学习经历,最后,希望喜欢我文章的朋友们可以帮忙点个赞,也可以关注一下,如果有问题可以在评论区提出,后面我会持续更新Flutter的学习记录,与大家分享,谢谢大家的支持与阅读!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值