【Flutter】【widget】TextField 和CupertinoTextField 输入框

widget名字:TextField 和CupertinoTextField 输入框

TextField 和CupertinoTextField 输入框,主要提供的是输入框的功能。具体详细介绍可以查看代码备注


功能:

功能:

  1. 文本输入
  2. 设置边框
  3. 输入限制
  4. 输入监听

使用实例和代码:

class TxInputWidge extends StatefulWidget {
 const TxInputWidge({Key? key}) : super(key: key);

 @override
 _TxInputWidgeState createState() => _TxInputWidgeState();
}

class _TxInputWidgeState extends State<TxInputWidge> {
 // controller是输入框文本编辑的控制器,可以获取TextField的内容、设置TextField的内容
 late TextEditingController _controller;
 @override
 void initState() {
   // TODO: implement initState
   super.initState();
   _controller = TextEditingController()
     ..addListener(() {
       //把输入文字转为大写
       print('listen to control');
     });
 }

 @override
 void dispose() {
   // TODO: implement dispose
   super.dispose();
   _controller.dispose();
 }

 @override
 Widget build(BuildContext context) {
   return SingleChildScrollView(
     child: Column(
       crossAxisAlignment: CrossAxisAlignment.start,
       children: [
         const Text('TextField_1'),
         const TextField(),
         const Text('TextField_2'),
         const TextField(
           decoration: InputDecoration(
               prefix: Text('I AM prefix'), //前置widget ,可以是widget 获得焦点的时候才显示
               prefixIcon: Icon(Icons.first_page),
               icon: Icon(Icons.settings), //最前面的图标显示,不需要获取焦点一直显示
               suffix: Text('I AM suffix'),
               suffixIcon: Icon(Icons.clear)), //尾部
         ),
         const Text('TextField_3_背景色的填充和边框样式'),
         const TextField(
             decoration: InputDecoration(
                 filled: true,
                 fillColor: Colors.greenAccent,
                 //失去焦点的时候的边框样式设置
                 enabledBorder: OutlineInputBorder(
                     //外边框的配置项目
                     borderSide: BorderSide(color: Colors.grey, width: 2.0),
                     borderRadius: BorderRadius.all(Radius.circular(20))),
                 //获取焦点的时候的边框样式
                 focusedBorder: OutlineInputBorder(
                     //外边框的配置项目
                     borderSide:
                         BorderSide(color: Colors.pinkAccent, width: 2.0),
                     borderRadius: BorderRadius.all(Radius.circular(100))))),
         const Text('TextField_4_背景色的填充和边框样式'),
         const TextField(
             maxLength: 100, //最大的输入字符100 ,有下边框显示。超过一个字就不能再输入
             cursorColor: Colors.red, //光标的颜色
             cursorHeight: 2.0,
             decoration: InputDecoration(
                 labelText: '左上角的文字标识', helperText: '帮助提示的文本,比如输入邮箱')),
         const Text('TextField_5_onchange 等'),
         TextField(
           onChanged: (value) {
             //文本输入有变化的时候就做这个槽子
             print("onchange $value");
           },
           onSubmitted: (value) {
             //点击回车提交按键的操作
             print("onSubmitted $value");
           },
           onEditingComplete: () {
             print('编写完成,不能获取到value');
           },
         ),
         const Text('TextField_6_限制功能,输入,正则'),
         TextField(
           inputFormatters: [
             //允许 ,如下只允许输入0-9的数字,可以匹配正则表达式
             // FilteringTextInputFormatter.allow(RegExp(r'[0-9]'))
             //禁止输入字母
             // FilteringTextInputFormatter.deny(RegExp(r'"[a-zA-Z]"')) //禁止
             FilteringTextInputFormatter.deny("zzz") //禁止输入zzz
           ],
         ),
         const Text('TextField_7_密码遮挡等'),
         const TextField(
           obscureText: true, //默认用小圆点遮挡
           obscuringCharacter: '*', //可以更改为自己想要的遮挡文本
         ),
         const Text('TextField_8_CupertinoTextField'),
         CupertinoTextField(
             decoration: BoxDecoration(
           color: Colors.red,
           borderRadius: BorderRadius.circular(5),
         )),
         const Text('TextField_9_control'),
         const TextField(
           obscureText: true, //默认用小圆点遮挡
           obscuringCharacter: '*', //可以更改为自己想要的遮挡文本
         ),
         TextField(
           key: UniqueKey(),
           controller: _controller,
           // autofocus: true, //自动获取到焦点
           decoration: InputDecoration(
               suffix: IconButton(
             icon: const Icon(Icons.clear),
             onPressed: () {
               _controller.clear(); //清除已编写的文本
             },
           )),
         ),
         const TextField(

             // obscureText: true, //默认用小圆点遮挡
             // obscuringCharacter: '*', //可以更改为自己想要的遮挡文本
             ),
       ],
     ),
   );
 }
}


截图:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程首先介绍了Flutter的主要知识,通过4个案例消化吸收知识点。并通过手把手一步步带您完成一个【我的备忘录】APP项目,使得您真正认识Flutter在实际项目中的优势。  通过本课程学习您可以学习到Flutter技术如下知识:第1章 Flutter概述知识点:移动应用开发现状、移动应用开发类型、Hybrid与移动跨平台开发策略、Flutter是什么?、Flutter特点、Flutter体系结构。第2章 Flutter开发环境搭建知识点:基于Windows的Android开发环境、基于macOS的iOS开发环境、IDE开发工具设置。第3章 Flutter基础知识点:完成一个Flutter程序、一切都是组件(Widget)、组件分类、使用图片和图标资源、使用文本组件、增加调试组件工具。第4章 布局组件知识点:Flutter布局概述、容器布局(Container)、行(Row)、列(Column)布局、层叠布局、ListView、GridView。第5章 Material风格组件知识点:按钮、输入框、复选框、单选按钮、开关按钮、滑块。第6章 iOS Cupertino风格组件知识点:iOS Cupertino页面、Cupertino按钮、Cupertino开关按钮、Cupertino滑块、Cupertino分段控件。第7章 状态管理知识点:状态管理概述、局部状态管理、全局状态管理。第8章 导航知识点:导航概述、面包屑导航、标签导航、页面组件分散在不同文件中、全局状态管理与导航。第9章 工程依赖管理知识点:工程依赖管理概述、pub依赖管理工具。第10章 数据存储知识点:Flutter数据存储策略、键值对数据存储、文件数据存储、SQLite数据存储、示例:数据CRUD操作。第11章 网络通信知识点:搭建自己的Web服务器、使用http包、示例:城市信息列表。第12章 项目实战:我的备忘录APP知识点:备忘录APP项目说明、备忘录项目后台Web服务API说明、备忘录APP项目分析与设计、初始化工程、持久层实现、表示层实现。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值