当前位置: 首页 > article >正文

第三百零九回

文章目录

  • 1. 概念介绍
  • 2. 实现方法
    • 2.1 hintText
    • 2.2 labelText
    • 2.3 controller
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何在输入框中处理光标"相关的内容,本章回中将介绍如何添加输入框默认值.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

在项目中经常使用输入框获取用户输入的内容,有时候在输入框中反复输入相同的内容会让用户感觉繁琐,因此我们准备在输入框中加入默认值,以减少输入的次数,本章
回中将介绍几种在输入框中加入默认值的方法,我们使用的输入框仍然基于TextField组件实现。

2. 实现方法

我们在实践中发现了几种在输入框中添加默认值的方法,有的比较好用,有的则不能用,在下面的小节中我们将分别介绍这几种实现方法。

2.1 hintText

使用hintText可以在输入框中添加默认值,不过它默认的显示颜色比较浅,还有一个致命缺点就是不能编辑默认值:当我们在输入框中输入内容时它会全部消失,不能对
默认值进行编辑。因此,我们不推荐使用hintText来充当默认值,还是把它当作输入框的提示值比较好。

2.2 labelText

使用labelText也可以在输入框中添加默认值,不过它和hitText一样不能编辑,而且当我们在输入框中输入内容时它会全部消失,并且运行跑到左上角的边框上。因此,
我们不推荐使用labelText来充当默认值,还是把它当作输入框中内容的label(标签)比较好。

2.3 controller

使用controller也可以在输入框中添加默认值,而且可以对默认值进行编辑,它不会像hintText一样全部分消失,也不会像labelText一样跑到输入框的边框上。我
们将在后面的小节中通过示例代码来演示它的使用方法。

3. 示例代码

final TextEditingController _controller = TextEditingController();
//给控制器设置初始值
controller.text = "123456";

TextField(
  autofocus: true,
  ///设置初始值,可以监听值的变化,和onChanged中得到的值一样
  controller: _controller,
  keyboardType: TextInputType.number,
  ///这个值是输入框中所有的内容,而不是当前输入的某个内容
  onChanged: (value) {
    debugPrint("hello onchanged $value");
  },
  //这个值是输入框中所有的内容
  onSubmitted: (value){
    debugPrint("hello onSubmited $value");
  },
  decoration: const InputDecoration(
    //在输入框上显示
    labelText: "Label",
    hintText: "Name",
    //在输入框下方位置显示
    errorText: "It is wrong",
    //输入框前面和后面的图标
    prefixIcon: Icon(Icons.login,),
    suffixIcon: Icon(Icons.panorama_fish_eye),
    border: OutlineInputBorder(),
    //无边框,无边框时不要设置label,不然会和hint重叠在一起
    // border: InputBorder.none,
    ///这两个值需要同时修改才有效果
    filled: true,
    fillColor: Colors.blue,
  ),
  //是否显示为密码形式,true时显示为小圆点
  obscureText: false,
),

我们在上面的示例代码中实现了一个密码输入框,并且尝试使用hintText,labelText和contorller来在输入框中实现默认值的功能,经过多次分析与实践后发现,
只有cntroller是比较好的实现方式。我在这里就不演示程序的运行结果了,建议大家自动动手去实践。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • hintText虽然可以在输入框中实现默认值,但是不能对默认值进行编辑;
  • lableText虽然可以在输入框中实现默认值,但是也不能对默认值进行编辑;
  • controller可以实现默认值,而且支持对默认值进行编辑功能;
    看官们,与"如何添加输入框默认值"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

http://www.kler.cn/a/229094.html

相关文章:

  • 【git】如何删除本地分支和远程分支?
  • 【C语言】_求字符串长度函数strlen
  • 网络安全 | 什么是威胁情报?
  • 升级 SpringBoot3 全项目讲解 — 为什么 SpringBoot3 应该抛弃 Maven,搭配 Gradle 来使用?
  • next-auth v5 结合 Prisma 实现登录与会话管理
  • 一体机cell服务器更换内存步骤
  • 二叉树oj笔记
  • 安卓平台valgrind交叉编译
  • 蓝桥杯Web应用开发-浮动与定位
  • spring boot bean的生命周期
  • 为什么在产品设计和制造过程中要采用FMEA——SunFMEA软件
  • 如何发布自己的npm包:
  • node.js 使用 elementtree 生成思维导图 Freemind 文件
  • C语言之数据在内存中的存储
  • VM安装Centos7
  • 鸿蒙内核框架
  • <.Net>使用visual Studio 2022在VB.net中新添自定义画图函数(优化版)
  • 03-OpenFeign-请求传参设置
  • FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用
  • 【视觉领域GPT】SAM:如何使模型能够处理任意图像的分割任务?
  • 【go】延迟执行和定时器实现
  • 非springboot 使用aop 切面
  • HBase相关面试准备问题
  • mysql8通过binlog恢复数据
  • OpenGL 入门(九)—Material(材质)和 光照贴图
  • AS-V1000 视频监控平台产品介绍:客户端功能介绍(二)