扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
TextFormField继承自FormField,是flutter表单提交相关组件,类似于html中的 input type="text" / ,是个文本输入框。需要在 Form 组件内部使用,否则无法正确提交数据。
创新互联公司专注于企业营销型网站建设、网站重做改版、海棠网站定制设计、自适应品牌网站建设、H5场景定制、购物商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海棠等各大城市提供网站开发制作服务。
未完待续
否。
1、Flutter判断是谷歌的移动UI框架。
2、可以快速在iOS和Android上构建高质量的原生用户界面。
3、Flutter表单判断可以与现有的代码一起工作,是不需要进行修改的。
参照
【Flutter】表单 - Input
首先创建一个密码框
设置右侧的小眼睛图标并绑定事件
flutter提供一套表单校验框架Form,可以通过Form框架一步校验所有表单,非常方便,比较常用的用法是Form+TextFormField。
Form继承StatefulWidget,有一个widget 类型的child参数,证明Form是一个容器。
Form里还有一个validate方法,如下
一般通过GlobalKey来访问Form中validate方法,Form的validate方法用来校验所有Form里的FormField表单,validate方法返回值是bool类型,返回true表示所有表单校验成功;返回false表示有校验失败的表单;
TextFormField继承FormField,FormField后面源码分析会讲,所有Form可统一校验的表单都必须继承FormField,可以通过FormField自定义各种各样可校验表单,TextFormField只是FormField自定义表单中的一种。
表单校验必须实现的方法为validator,定义如下:
每个表单的校验规则都在validator里实现,通过返回值来判断是否校验成功。
1、用Form包在所有需要校验的表单最外层,如下:
2、将GlobalKey传给Form,用于调用Form里方法,如下:
3、将TextFormField传给Form容器,如下:
4、实现对应TextFormField的校验规则 ,如下:
5、最后调用Form校验所有表单方法validate,如下:
网络请求, 先想到的是dart官方维护的 http 库. 由于我们项目组网络请求都采用的表单结构, http 貌似不支持表单格式的网络请求; 后来查看 dio 库, 发现支持 FormData , 完美解决!
官方表单网络请求示例:
比葫芦画瓢, 尝试下
一个FormField包含TextField,它将TextField小部件包装在FormField中。
表单(From)使一次进行保存、重置或验证多个字段变得更容易。要在没有表单(From)的情况下使用,请将GlobalKey传递给构造函数,并使用GlobalKey.currentState保存或重置表单字段。
指定控制器时,initialValue必须为null(默认值)。如果controller为null,那么TextEditingController将被自动构造,其文本将初始化为initalValue或空字符串。如果这个FormField是滚动容器的一部分,该容器懒加载它的子对象,比如ListView或CustomScrollView,那么应该指定一个控制器。控制器的生命周期应该由滚动容器的有状态小部件祖先来管理。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流