第三百零三回

news2024/10/6 6:01:10

文章目录

  • 1. 概念介绍
  • 2. 实现方法
    • 2.1 文字信息
    • 2.2 红色边框
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何实现密码输入框"相关的内容,本章回中将介绍如何在在输入框中提示错误.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回介绍的内容还与输入框有关,输入框仍然使用TextField组件实现。我们主要介绍如何在输入框中提示错误。具体的现象是输入框下方显示错误文字信息,
同时输入框显示红色边框。这相当于使用文字信息和颜色来发出错误提示。本章回中将介绍如何实现这些错误提示。

2. 实现方法

输入框中的错误信息都是通过TextField组件的属性实现的,我们在接下来的小节中分别介绍文字信息和红色方框的实现方法。

2.1 文字信息

文字信息主要通过InputDecoration组件的errorText属性实现,同时我们需要把InputDecoration组件赋值给TextField组件的decoration属性,这样才能在
输入框下方显示文字信息。errorText属性比较特殊,当它的值为null时不会显示任何文字,当它的值不为null时就会显示文字信息,文字信息位于输入框下方,而且
文字的颜色是红色。开发人员只需要给errorText属性赋值就可以,其它的事情不需要去关注。

2.2 红色边框

红色边框主要通过InputDecoration组件的errorBorder属性实现,同时我们需要把InputDecoration组件赋值给TextField组件的decoration属性,这样才
能在输入框周围显示红色边框。errorBorder属性比较特殊,当errorText属性的值为null时不会显示红色边框,当errorText属性的值不为null时就会显示红色边
框,边框环绕在整个输入框周围。开发人员只需要给errorText属性赋值就可以,其它的事情不需要去关注。

3. 示例代码

TextField(
  obscureText: !isPasswordVisible,
  keyboardType: TextInputType.text,

  decoration: InputDecoration(
    ///这两个一起使用才有填充颜色
    filled: true,
    fillColor: Colors.grey[200],

    ///属性值不为空时(!= null)显示errorText,
    errorText: isPwdEmpty? "password is empty": null,

    ///用来去掉输入框下面的横线
    border: InputBorder.none,
    ///实现显示和隐藏密码功能
    suffixIcon: IconButton(
      icon:isPasswordVisible ? const Icon(Icons.visibility) : const Icon(Icons.visibility_off),
      onPressed: () {
        setState(() {
          isPasswordVisible = !isPasswordVisible;
        });
      },
    ),

    ///失去焦点并且errorText的值不为null时就显示
    errorBorder: OutlineInputBorder(
      borderSide: const BorderSide(color:Colors.red,width: 1),
      borderRadius: BorderRadius.circular(16),
    ),
  ),
  ///这里的值配合配合border一起实现红色边框错误提示功能
  onChanged: (value) {
    setState(() {
      if(value == "" || value.isEmpty) {
        pwdValue = "";
        isPwdEmpty = true;
      }else {
        pwdValue = value;
        isPwdEmpty = false;
      }
    });
  },
),

上面的示例代码演示了如何在输入框中提示错误,错误包含文本信息和红色方便,它们都通过isPwdEmpty这个bool类型的变量来控制,我们会在onChanged属性中判
断输入框中值,如果输入框中输入的值为空就把isPwdEmpty设置为true,同时更新组件的状态值;反之将isPwdEmpty的值设置为false。组件中的errorText属性
和errorBorder属性检查到isPwdEmpty的值为false时就会在输入框下方显示错误文字信息,同时在输入框周围显示红色边框。

4. 内容总结

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

  • 输入框基于TextField组件实现,它会通过decoration属性来显示错误信息;
  • 输入框中的错误信息包信错误文字和红色方框两部分,它们会同时出现输入框中;
  • 错误信息通过InputDecoration组件的errorText属性来控制;
  • 红色方框通过InputDecoration组件的errorBorder属性来实现;
  • 我们需要在输入框的onChanged属性中判断输入的内容,然后更新TextFiled组件的状态;
    看官们,与"如何在在输入框中提示错误如何处理ListView中的事件冲突"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428354.html

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

相关文章

LabVIEW CVT离合器性能测试

介绍了CVT(连续变速器)离合器的性能测试的一个应用。完成了一个基于LabVIEW软件平台开发的CVT离合器检测与控制系统,通过高效、准确的测试方法,确保离合器性能达到最优。 系统采用先进的硬件配合LabVIEW软件,实现了对…

python-自动化篇-运维-实现读取日志文件最后一行的时间

文章目录 1. 使用Python打开日志文件2.python读取文件最后一行两种方式3.读取当前时间,进行两者相减,超时报警4.将内容推送到企业微信5. 关闭日志文件整体代码 1. 使用Python打开日志文件 在开始实时读取日志文件之前,我们首先需要打开一个日…

深入了解键盘:分类、工作原理与操作指南

键盘 键盘是计算机使用的主要输入设备之一,键盘主要由创建字母、数字和符号并执行附加功能的按钮组成,通常用于向计算机或其他数字设备输入文本、命令和各种控制信号。 键盘是计算机中最重要的字符输入设备,其基本组成元件是按键开关&#…

画质和场景双需求下,海信电视U8KL的变与不变

又到一年春节,最近几年大家过年的方式越来越丰富,但是跟家人在一起看春晚依然是主流,电视也是过年不可或缺的家庭成员。 当然,随着大家对生活品质的要求更高,对电视的要求也变得更高了。比如,现在春晚直播…

ESP-IDF增加自定义组件开发过程记录

ESP-IDF增加自定义组件开发过程记录 记录一下,自定义组件开发方式容易实现代码的复用。比如说在实现一些芯片或者模块的代码上,网上先找找有的话就可以不用自己写了,实在没有的时候只能自己辛苦摸索编写了。 前言: 因为对cmake也不懂&…

纯血鸿蒙来了,鸿蒙App开发该如何提速

“全世界做产品挣钱的公司很多,但有能力打造操作系统的公司没有几家,最后世界上的操作系统就只有三套:鸿蒙、iOS和安卓。” --- 360集团创始人、董事长周鸿祎 “HarmonyOS实现了AI框架、大模型、设计系统、编程框架、编程语言、编译器等全栈…

Google Earth Engine tools——利用geetools中的algorithms算法实现hsv

简介 锐化HSV是一种图像处理技术,它是通过调整图像的颜色分量来增强图像的细节和清晰度。HSV是一种颜色空间模型,它基于人类视觉感知的方式来描述颜色。HSV代表色调(Hue)、饱和度(Saturation)和明度&…

正点原子--STM32中断系统学习笔记(1)

1、什么是中断? 原子哥给出的概念是这样的:打断CPU正常执行的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 当发生中断时,当前执行的程序会被暂时中止,进而进入中断处理函…

Vector CANdb++ Editor和CANdb++ Admin的区别

目录 1 CANdb Editor和CANdb Admin的功能偏差 2 CANdb Program窗口 3 下载并安装CANdb Editor和CANdb Admin 3.1 安装CANdb Admin.J1939 3.0 SP27 优质博文推荐阅读(单击下方链接,即可跳转): Vector工具链 CAN Matrix DBC …

解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录 1.示例: 1.1 实现代码1:列数为常量 运行结果: 1.2 实现代码2:列数为变量 运行结果: 1.示例: 开发需求:读取Excel文件,统计第3列到第5列中每列的"False"字段占…

Linux VLAN相关概念、转发原理及处理流程

背景 二、三层转发是网络工程师经常接触到的一个问题,VLAN配置是二、三层转中一个很重要的概念,在配置VLAN的情况下,内核对报文是如何处理的呢? 概念 了解VLAN转发,首先必须知道VLAN相关概念; VLAN作用 V…

闲聊电脑(4)硬盘分区

夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,上次你说的那个“分区”和“格式化”是什么意思? 冰箱:分区么,就是分…

Kotlin快速入门系列10

Kotlin的委托 委托模式是常见的设计模式之一。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。与Java一样,Kotlin也支持委托模式,通过关键字by。 类委托 类的委托即一个类中定义的方…

VPP学习-startup.conf配置文件

背景 VPP(Vector Packet Processing,矢量报文处理),作为一个开源的高性能数据包处理框架,旨在提供可扩展、灵活且高效的网络数据包处理能力;由于传统Linux 内核协议栈整体网络吞吐性能的局限性,…

MySQL | 一定会走索引却没有走的原因,日志报conversion相关错误

TL;DR:函数作用于表字段时,索引会失效。 具体情况 Indexes如下: SQL如下: explain select *from accounting_status_flow_tab_00000000WHERE ( client_no 6848134000 and loan_no 0119324345936016261000 )order by modif…

MySQL 8.0 引入 innodb_flush_method 等新参数的系统调用分析

本文我们将讨论如何在操作系统级别验证 innodb_flush_method 和 innodb_use_fdatasync 修改为默认值之外的其它值(特别是 O_DIRECT 是最常用的)后的效果。 介绍 首先,让我们定义该 innodb_flush_method 参数的作用。它规定了 InnoDB 如何管…

加快“数实融合”推进新型工业化 济南个性化体检“把脉”企业数字化转型难点痛点

加快“数实融合”推进新型工业化 济南个性化体检“把脉”企业数字化转型难点痛点 以主流价值为光,解读“济南故事”,解码C位新闻。爱济南客户端推出“追光”栏目,发挥新型主流媒体权威性和创新性,着眼经济社会发展紧要处、关键处、…

Java学习day26:和线程相关的Object类的方法、等待线程和唤醒线程(知识点详解)

声明:该专栏本人重新过一遍java知识点时候的笔记汇总,主要是每天的知识点题解,算是让自己巩固复习,也希望能给初学的朋友们一点帮助,大佬们不喜勿喷(抱拳了老铁!) 往期回顾 Java学习day25:守护线…

压力测试工具-Jmeter使用总结

目录 一.前言 二.线程组 三.线程组的组件 四.线程组-HTTP请求 1、JSON提取器 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组 2.配置元件 3.构造HTTP请求 4.添加HTTP请求头 5.添加断言 6.添加查看结果树…

Python之Numpy 和 Pandas

目录 2.1 numpy import numpy as np array np.array([[1,2,3],[2,3,4]]) print(array) print(number of dim:,array.ndim) print(shape:,array.shape) print(size:,array.size)pandas 1,pandas 基本介绍 df2 pd.DataFrame({A:1.,B:pd.Timestamp(20130102),C:pd.Series(1,i…