TextFormField繼承自FormField,是flutter表單提交相關(guān)組件,類似于html中的 input type="text" / ,是個(gè)文本輸入框。需要在 Form 組件內(nèi)部使用,否則無法正確提交數(shù)據(jù)。
創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、海棠網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為海棠等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
未完待續(xù)
否。
1、Flutter判斷是谷歌的移動(dòng)UI框架。
2、可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。
3、Flutter表單判斷可以與現(xiàn)有的代碼一起工作,是不需要進(jìn)行修改的。
參照
【Flutter】表單 - Input
首先創(chuàng)建一個(gè)密碼框
設(shè)置右側(cè)的小眼睛圖標(biāo)并綁定事件
flutter提供一套表單校驗(yàn)框架Form,可以通過Form框架一步校驗(yàn)所有表單,非常方便,比較常用的用法是Form+TextFormField。
Form繼承StatefulWidget,有一個(gè)widget 類型的child參數(shù),證明Form是一個(gè)容器。
Form里還有一個(gè)validate方法,如下
一般通過GlobalKey來訪問Form中validate方法,F(xiàn)orm的validate方法用來校驗(yàn)所有Form里的FormField表單,validate方法返回值是bool類型,返回true表示所有表單校驗(yàn)成功;返回false表示有校驗(yàn)失敗的表單;
TextFormField繼承FormField,F(xiàn)ormField后面源碼分析會(huì)講,所有Form可統(tǒng)一校驗(yàn)的表單都必須繼承FormField,可以通過FormField自定義各種各樣可校驗(yàn)表單,TextFormField只是FormField自定義表單中的一種。
表單校驗(yàn)必須實(shí)現(xiàn)的方法為validator,定義如下:
每個(gè)表單的校驗(yàn)規(guī)則都在validator里實(shí)現(xiàn),通過返回值來判斷是否校驗(yàn)成功。
1、用Form包在所有需要校驗(yàn)的表單最外層,如下:
2、將GlobalKey傳給Form,用于調(diào)用Form里方法,如下:
3、將TextFormField傳給Form容器,如下:
4、實(shí)現(xiàn)對(duì)應(yīng)TextFormField的校驗(yàn)規(guī)則 ,如下:
5、最后調(diào)用Form校驗(yàn)所有表單方法validate,如下:
網(wǎng)絡(luò)請(qǐng)求, 先想到的是dart官方維護(hù)的 http 庫(kù). 由于我們項(xiàng)目組網(wǎng)絡(luò)請(qǐng)求都采用的表單結(jié)構(gòu), http 貌似不支持表單格式的網(wǎng)絡(luò)請(qǐng)求; 后來查看 dio 庫(kù), 發(fā)現(xiàn)支持 FormData , 完美解決!
官方表單網(wǎng)絡(luò)請(qǐng)求示例:
比葫蘆畫瓢, 嘗試下
一個(gè)FormField包含TextField,它將TextField小部件包裝在FormField中。
表單(From)使一次進(jìn)行保存、重置或驗(yàn)證多個(gè)字段變得更容易。要在沒有表單(From)的情況下使用,請(qǐng)將GlobalKey傳遞給構(gòu)造函數(shù),并使用GlobalKey.currentState保存或重置表單字段。
指定控制器時(shí),initialValue必須為null(默認(rèn)值)。如果controller為null,那么TextEditingController將被自動(dòng)構(gòu)造,其文本將初始化為initalValue或空字符串。如果這個(gè)FormField是滾動(dòng)容器的一部分,該容器懶加載它的子對(duì)象,比如ListView或CustomScrollView,那么應(yīng)該指定一個(gè)控制器??刂破鞯纳芷趹?yīng)該由滾動(dòng)容器的有狀態(tài)小部件祖先來管理。