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

第三百一十三回

文章目录

  • 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的属性值时要及时更新组件的状态,不然修改后也没有效果;
    看官们,与"如何实现密码输入框"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

相关文章:

  • Android车机DIY开发之学习篇(六)编译讯为3568开发板安卓
  • 392.判断子序列
  • 注册谷歌账号
  • 1.27刷题记录
  • DeepSeek的崛起与全球科技市场的震荡
  • allegro修改封闭图形线宽
  • Go基础学习笔记-01
  • 【C语言】(13)堆和栈
  • 【推荐算法】userid是否需要建模
  • PCIE Order Set
  • excel统计分析——成组数据秩和检验
  • 秘塔科技推出AI搜索产品「秘塔AI搜索」
  • Windows 安装 MySQL 最新最简教程
  • 【AG32VF407】国产MCU+FPGA,更新官方固件解决8Mhz内部晶振不准,Verilog实测7.9Mhz!
  • ubuntu 安装 kvmQemu no active connection to install on
  • 百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)
  • 第三百一十二回
  • 浏览器F12调试
  • QT设置qss
  • Golang 基础 环境配置和包管理
  • Golang 并发 生产者消费者模式
  • 《MySQL 简易速速上手小册》第2章:数据库设计最佳实践(2024 最新版)
  • uniapp 开发App 权限授权 js-sdk
  • win10系统连接WiFi,输入正确密码,但还是提示错误
  • FPS游戏框架漫谈第二十二天
  • 【Eclipse插件开发】3工作台workbench探索【下篇】