第三百零一回

文章目录

  • 1. 概念介绍
  • 2. 实现方法
    • 2.1 obscureText属性
    • 2.2 decoration属性
  • 3. 示例代码
  • 4. 内容总结

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

在这里插入图片描述

1. 概念介绍

在实际项目中会遇到输入密码需求,我们将在本章回中介绍如何实现密码输入框。该需求基于TextField组件实现,通过使用组件中相关的属性可以实现密码输入框功能.
我们在前面章回中介绍过TextFiled组件的基本用法,本章回中的内容可以看作是TextField组件的扩展用法。

2. 实现方法

实现密码输入框功能主要使用TextField组件的obscureText和decoration属性,接下来我们分别介绍这两个属性的用法:

2.1 obscureText属性

该属性主要用来控制显示或者隐藏输入框中的内容,这里说的隐藏是指输入密码时显示小黑点,而不是具体的内容。该属性是bool类型,它的值为true时正常显示输入框
中的内容,它的值为false时隐藏显示输入框中的内容。

2.2 decoration属性

该属性主要用来显示密码图标,点击图标后可以显示或者隐藏输入框中输入的内容。我们通常使用InputDecoration组件给它赋值,同时在该组件的suffixIcon属性
中存放一个IconButton组件,这样就可以通过点击图标按钮来显示或者隐藏输入框中的内容。我们将在后面的小节中通过具体的示例代码来演示。

3. 示例代码

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

  decoration: InputDecoration(


    ///用来去掉输入框下面的横线
    border: InputBorder.none,

    ///实现显示和隐藏密码功能
    suffixIcon: IconButton(
      icon:isPasswordVisible ? const Icon(Icons.visibility) : const Icon(Icons.visibility_off),
      onPressed: () {
        setState(() {
          isPasswordVisible = !isPasswordVisible;
        });
      },
    ),
  ),
  ///这里的值配合光标监听器和两个border一起实现红色边框错误提示功能
  onChanged: (value) {
    setState(() {
      pwdValue = value;
    });
  },
),

我们在上面示例代码中定义了一个bool类型的变量isPasswordVisible,并且将它赋值给obscureText属性。然后在点击按钮时修改它的值,这样就可以显示或者隐
藏输入框中的内容。此外,这个值还用来控制图标的样式,代码中使用了睁眼和闭眼两个图标,它的值为true时显示睁眼图标,反之显示闭眼图标。这里的按钮就是存放
在suffixIcon属性中的组件,它会在输入框最右侧显示一个睁眼或者闭眼的图标。

4. 内容总结

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

  • 使用TextField组件的obscureText属性可以显示或者隐藏输入框中内容;
  • 使用TextField组件的decoration属性可以在输入框最右侧显示一个图标;
  • 在图标中响应点击事件,并且在点击事件中修改bscureText的属性值;
  • 修改bscureText的属性值时要及时更新组件的状态,不然修改后也没有效果;
    看官们,与"如何实现密码输入框"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

配置IPv6静态路由

1、静态路由简介 静态路由是一种需要管理员手工配置的特殊路由。 静态路由在不同网络环境中有不同的目的: 当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。 在复杂网络环境中,配置静态路由可以改进网络的性能,并…

SpringBoot拉取高德行政区域数据

SpringBoot拉取高德行政区域数据 一、账号申请 1.整体流程 行政区域文档:https://lbs.amap.com/api/webservice/guide/api/district 整体流程可参考:https://lbs.amap.com/api/webservice/guide/create-project/get-key 2.注册账号 注册地址&#…

揭秘2023年全球软件架构师峰会:引领未来的技术潮流与PPT宝藏!

随着科技的不断进步和创新,全球软件架构师峰会(ArchSummit深圳站)作为国际知名的技术交流盛会,再次吸引了全球顶尖的软件架构师和技术领袖齐聚一堂。 本次峰会不仅展示了最前沿的技术动态,更为参与者带来了极具价值的…

202415读书笔记|《鲸鱼安慰了大海》——我不知道你爱不爱我 湖水想被青山拥在怀里

202415读书笔记|《鲸鱼安慰了大海》——我不知道你爱不爱我 湖水想被青山拥在怀里 辑一 我们一起站在山坡上开花辑二 野花唱歌给自己听辑三 星空给我留了位置后记 《鲸鱼安慰了大海》作者燕七,是在一个关注的友友那里知道的这本书,决定读下去&#xff0c…

C++(17.5)——list模拟实现扩展

在上篇文章中,实现了的大部分功能以及部分迭代器。本片文章将对剩下的功能进行补充。 1. const迭代器: 对于上篇文章中实现的迭代器只能使用于非类型的对象。对于类型的遍历,则需要额外编写类型的迭代器。例如对于下面的场景: …

Yolo v8 入门学习之采用 coco128 数据集进行图片检测测试

示例入门代码 from ultralytics import YOLO import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimgdef test():# Create a new YOLO model from scratchmodel YOLO(yolov8n.yaml)# Load a pretrained YOLO model (recommended for training)model …

在Windows系统中执行DOS命令

目录 一、用菜单的形式进入DOS窗口 二、通过IE浏览器访问DOS窗口 三、复制、粘贴命令行 四、设置窗口风格 1.颜色 2.字体 3.布局 4.选项 五、Windows系统命令行 由于Windows系统彻底脱离了DOS操作系统,所以无法直接进入DOS环境,只能通过第三方软…

从零开始 Linux(一):基础介绍与常用指令总结

从零开始 Linux 01. 概念理解 1.1 什么是 Linux? Linux 是一个开源免费的 操作系统,具有很好的稳定性、安全性,且有很强的处理高并发的能力 Linux 的应用场景: 可以在 Linux 下开发项目,比如 JavaEE、大数据、Python…

css多行文本擦拭效果

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>多行文本擦拭效果</title><style>* …

QT SQL

QT SQL模块提供数据库编程的支持&#xff0c;支持多种常见的数据库&#xff1a;MySQL\Oracle\MS SQL Server\SQLite等。SQL模块包含多个类&#xff0c;可以实现&#xff1a;数据库连接、SQL语句执行、数据获取与界面显示 等功能。数据 与 界面间用Model\View架构。 一、 二、Q…

网络服务综合实验项目

目录 实验要求 运行环境 基础配置 业务需求 实验步骤 一、基础配置 1.1、配置静态IP 1.1.1、 在192.168.159.130中配置 1.1.2、 在192.168.159.131中配置 ​编辑 1.2、修改主机名及hosts映射 1.2.1、在192.168.159.130中配置 1.2.2、 编辑配置hosts文件 1.2.3、重启…

用的到的linux-文件移动-Day2

前言&#xff1a; 在上一节&#xff0c;我们复习了cd大法和创建生成文件和文件夹的方法&#xff0c;介绍了一些“偷懒”&#xff08;高效&#xff09;的小技巧&#xff0c;本节&#xff0c;我们一起来探讨下&#xff0c;我们对文件移动操作时有哪些可以偷懒的小技巧~ 一、复制…

社科院与杜兰大学金融管理硕士项目——金融硕士学位证书有多重要呢

随着金融行业的快速发展&#xff0c;金融管理硕士项目逐渐成为越来越多人追求高学历和提升职业竞争力的选择。其中&#xff0c;社科院与杜兰大学合作的金融管理硕士项目备受关注。然而&#xff0c;对于很多人来说&#xff0c;花费大量的时间和金钱去攻读一个硕士学位是否值得呢…

前端开发实战基础——模块

文章目录 概要模块标识符模块依赖模块加载入口 CommonJS语法单例 AMD语法 UMD核心语法 ES6模块化模块标签及定义模块导出和导入命名导出和导入默认导出和导入命名导出和默认导出混用 模块行为 小结 概要 模块化&#xff0c;就是将代码拆分成独立的块&#xff0c;各自在代码块中…

小白初探|神经网络与深度学习

一、学习背景 由于工作的原因&#xff0c;需要开展人工智能相关的研究&#xff0c;虽然不用参与实际研发&#xff0c;但在项目实施过程中发现&#xff0c;人工智能的项目和普通程序开发项目不一样&#xff0c;门槛比较高&#xff0c;没有相关基础没法搞清楚人力、财力如何投入&…

Linux实验记录:使用Apache的虚拟主机功能

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 正文&#xff1a; 目录 前言&#xff1a; 正文&…

每日一道Java面试题:说一说Java中的泛型?

写在开头 今天的每日一道Java面试题聊的是Java中的泛型&#xff0c;泛型在面试的时候偶尔会被提及&#xff0c;频率不是特别高&#xff0c;但在日后的开发工作中&#xff0c;却是是个高频词汇&#xff0c;因此&#xff0c;我们有必要去认真的学习它。 泛型的定义 什么是泛型…

2024年1月的论文推荐

又到月底了&#xff0c;在月初推荐论文的基础上又整理了10篇推荐阅读的论文 1、MosaicBERT https://mosaicbert.github.io/ 一种用于快速预训练的双向编码器。MosaicBERT是针对快速预训练优化的自定义BERT架构。主要架构修改:FlashAttention, ALiBi&#xff0c;门控线性单元…

(八)MySQL事务和SQL优化

事务&#xff08;Transaction&#xff09;&#xff1a; 是数据库内最小且不可再分的单元。通常一个事务对应一个完整的业务(例如银行账户转账业务&#xff0c;该业务就是一个最小的工作单元)。一个完整的业务由批量的DML语句&#xff08;INSERT 、UPDATE、DELETE&#xff09;共…

pinctrl子系统与gpio子系统实验-通过应用程序测试Led驱动程序

一. 简介 前面几篇文章基本完成了 Led驱动代码&#xff0c;前面通过加载驱动模块也测试了 驱动程序。 这里通过运行应用程序&#xff0c;通过应用程序调用 Led驱动程序&#xff0c;从而驱动 打开或者关闭 Led灯。 二. 通过应用程序测试Led驱动程序 1. 驱动代码实现 gpiole…