第三百一十六回

[tod]
我们在上一章回中介绍了"如何在输入框中处理光标"相关的内容,本章回中将介绍如何添加输入框默认值.闲话休提,让我们一起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.mzph.cn/news/678042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市合伙人计划:资源共享、知识交流、合作创新

城市合伙人计划是一种合作伙伴关系,旨在通过共享资源、知识和经验,共同推动城市的经济发展和社会进步。这种计划通常涉及市政府、企业、社会组织和个人等多个方面,通过合作共同解决城市面临的问题和挑战。 城市合伙人计划的具体形式和内容可…

基于SSM的图书管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88825395?spm1001.2014.3001.5503 Java项目-14 1、导入源码 不成功导入模块也可以 2、配置jdk-一般为1.8 3、修改文件中数据库连接名与密码 4、配置Maven 5、更新Maven 7、添加数据库…

【MySQL】-12 MySQL索引(上篇MySQL索引类型前置-1)

MySQL索引 索引1 索引基础2 索引与优化1 选择索引的数据类型1.1 选择标识符 2 索引入门2.1 索引的类型2.1.1 B-Tree索引2.1.2 Hash索引2.1.3 空间(R-Tree)索引2.1.4 全文(Full-text)索引 索引的优点:索引是最好的解决方案吗? 索引 索引(在MYS…

【笔记】Harmony学习:下载安装 DevEco Studio 开发工具IDE

IDE 安装 从官网下载DevEco Studio 安装包后进行安装, 安装完毕后,本地环境可能要配置相关工具,可以通过下面的诊断检测一下本地环境,通过蓝色“Set it up now” 可以快速安装。 1. Node.js (for ohpm) 2. ohpm 下载op的包管理&a…

精灵图,字体图标,CSS3三角

精灵图 1.1为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁的接受和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。 因此,为了有效地减少…

43.1k star, 免费开源的 markdown 编辑器

简介 项目名: MarkText-- 简单而优雅的开源 Markdown 编辑器 Github 开源地址: https://github.com/marktext/marktext 官网: https://www.marktext.cc/ 支持平台: Linux, macOS 以及 Windows。 操作界面: 在操作界…

一场由对生成型人工智能的普遍不满引发的全面攻击正在展开

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【Linux】学习-动静态库

动静态库 头文件与库的区别 头文件一般而言,是声明和宏定义。头文件是在预处理阶段使用的 库文件是已经编译好的二进制代码。是一种目标文件,库文件是在链接阶段使用的 对于头文件和库我们可以这样理解,就是头文件提供的是一个函数的声明&…

使用Flash download tool进行ESP32固件烧录

背景 为方便分发固件,可在任意电脑上安装烧录软件,直接将固件烧录进 烧录内容 查看vscode上platformio的烧录过程 Writing at 0x00000000... (100 %) Wrote 15104 bytes (10401 compressed) at 0x00000000 in 0.4 seconds (effective 281.3 kbit/s).…

Pandas常用操作记录(更新中)

1.读取文件 import pandas as pd df pd.read_csv(路径) #pd.read_文件格式(路径) 2.读取某列某行,并使用map替换 2.1 直接读取某列数据 在获取到df对象后,可以使用 df.列名 来获取该列数据, import pandas as pd df pd.read_csv(rdat…

电商小程序06用户审核

目录 1 创建自定义应用2 显示待办数量3 创建审核页面4 开发审核功能5 搭建布局6 最终效果总结 上一篇我们讲解了用户注册的功能,用户注册之后状态是待审核,需要管理员进行审核。通常给管理员提供一套PC端的软件进行相关的操作,在低代码中&…

ChatGPT高效提问—prompt常见用法(续篇五)

ChatGPT高效提问—prompt常见用法(续篇五) 1.1 种子词 ​ 种子词(seed word)通常指的是在对话中使用的初始提示或关键词,用于引导ChatGPT生成相关回复。种子词可以是一个词、短语或句子,通常与对话的主题…

代码随想录算法训练营第四十八天(动态规划篇之01背包)| 1049. 最后一块石头的重量Ⅱ,494. 目标和

1049. 最后一块石头的重量Ⅱ 题目链接:1049. 最后一块石头的重量 II - 力扣(LeetCode) 思路 尽量将石头分为重量相同的两堆,这样两堆中的石头相撞之后剩下的石头就会最小。根据之前的01背包理论: 代码随想录算法训…

【Chrono Engine学习总结】3-地型terrain

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 1、关于物体材质 在介绍地型之前,要初步了解chrono中关于材质的一些基本概念。 首先,最基本的材质类是ChMaterialSurface,其进一步包括&…

原生JS使用PrintJs进行表格打印 -- 遇到的问题总结

需求1:表格自动分页之后,表头在每一页都需要显示 html中表头增加 thead 标签 css样式新增: thead {display: table-header-group; /* 这个属性使thead总是在新的page-break之后重新开始 */ }需求2:表格自动分页之后,…

数据可视化之维恩图 Venn diagram

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 维恩图(Venn diagram),也叫文氏图或韦恩图,是一种关系型图表,用于显示元素集合之间的重叠区…

购物|电商购物小程序|基于微信小程序的购物系统设计与实现(源码+数据库+文档)

电商购物小程序目录 目录 基于微信小程序的购物系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户前台功能实现 2、管理员后台功能实现 四、数据库设计 1、实体ER图 2、具体的表设计如下所示: 五、核心代码 六、论文参考 七、最新计算机毕设…

VSTO打包Word插件WPS也支持

启动AdvancedInstallerPortable.exe打包软件 选择“加载项” 选择“office加载项”之后点“创建项目” 四、输入自已的插件名和公司名 任选一种包类型 五、选择包的保存位置 勾选“vsto office加载项” 六、选择要打包的项目debug文件夹 选择相应版本 配置相应环境 选择语言 添…

微服务架构RabbitMQ实现CQRS模式

在现代软件开发中,微服务架构和CQRS模式都是备受关注的技术趋势。微服务架构通过将应用程序拆分为一系列小型、自治的服务,提供了更好的可伸缩性和灵活性。而CQRS模式则通过将读操作和写操作分离,优化了系统的性能和可维护性。本文小编将为大家介绍如何在ASP.NET Core微服务…

在 Next 中, ORM 框架 Prisma 使用

Prisma 介绍 Prisma 是一个 ORM 框架,主要用于 Node.js 或 TypeScript 作为后端开发的应用,主要有三部分组成: Prisma Client:自动生成且类型安全的查询构建器,适用于 Nodex.js 和 TS;Prisma Migrate: 迁…