大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
否。
成都创新互联公司2013年至今,先为扎赉诺尔等服务建站,扎赉诺尔等地企业,进行企业商务咨询服务。为扎赉诺尔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
1、Flutter判断是谷歌的移动UI框架。
2、可以快速在iOS和Android上构建高质量的原生用户界面。
3、Flutter表单判断可以与现有的代码一起工作,是不需要进行修改的。
一个FormField包含TextField,它将TextField小部件包装在FormField中。
表单(From)使一次进行保存、重置或验证多个字段变得更容易。要在没有表单(From)的情况下使用,请将GlobalKey传递给构造函数,并使用GlobalKey.currentState保存或重置表单字段。
指定控制器时,initialValue必须为null(默认值)。如果controller为null,那么TextEditingController将被自动构造,其文本将初始化为initalValue或空字符串。如果这个FormField是滚动容器的一部分,该容器懒加载它的子对象,比如ListView或CustomScrollView,那么应该指定一个控制器。控制器的生命周期应该由滚动容器的有状态小部件祖先来管理。
参照
【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,如下:
TextFormField继承自FormField,是flutter表单提交相关组件,类似于html中的 input type="text" / ,是个文本输入框。需要在 Form 组件内部使用,否则无法正确提交数据。
未完待续
网络请求, 先想到的是dart官方维护的 http 库. 由于我们项目组网络请求都采用的表单结构, http 貌似不支持表单格式的网络请求; 后来查看 dio 库, 发现支持 FormData , 完美解决!
官方表单网络请求示例:
比葫芦画瓢, 尝试下