Flutter中表單元件綜合運用例項
前面介紹了Flutter的各個表單元件的運用,現將這些元件用來實現一個綜合練習。
實現的效果圖如下:
以下是程式碼實現,供大家參考:
import 'package:flutter/material.dart';
class FormPage extends StatefulWidget {
FormPage({Key key}) : super(key: key);
@override
_FormPageState createState() => _FormPageState();
}
class _FormPageState extends State<FormPage> {
String username ;
int sex=1;
// 使用者的愛好集合
List hobby = [
{
"checked":true,
"title":"玩遊戲"
},
{
"checked":true,
"title":"寫程式碼"
},
{
"checked":true,
"title":"打豆豆"
}
];
String info = "";
// 姓別選擇的回撥方法
void _sexChange(value){
setState(() {
this.sex = value;
});
}
List<Widget> _getHobby(){
List <Widget> tempList=[];
for(int i =0;i<this.hobby.length;i++){
tempList.add(
Row(
children: <Widget>[
Text(this.hobby[i]["title"]+':'),
Checkbox(
value:this.hobby[i]["checked"],
onChanged:(value){
setState(() {
this.hobby[i]["checked"] = value;
});
},
)
],
)
);
}
return tempList;
}
@override
Widget build(BuildContext context) {
return Container(
child: Scaffold(
appBar: AppBar(
title: Text("資訊錄入系統"),
),
body:Padding(padding:
EdgeInsets.all(20),
child: Column(
children: <Widget>[
// 單行文字輸入框
TextField(
decoration: InputDecoration(
hintText: "請輸入使用者資訊"
),
onChanged: (value){
setState(() {
this.username = value;
});
},
),
SizedBox(height:20),
// 單選按鈕
Row(
children:<Widget>[
Text('男'),
Radio(
value:1,
onChanged: this._sexChange,
groupValue: this.sex,
),
SizedBox(width:20),
Text("女"),
Radio(
value:2,
onChanged:this._sexChange,
groupValue:this.sex,
)
]
),
SizedBox(height:20),
// 多選框
Column(
children:this._getHobby(),
),
SizedBox(height:20),
// 多行文字域
TextField(
maxLines: 4,
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: "請輸入備註資訊"
),
onChanged:(value){
setState(() {
this.info = value;
});
},
),
SizedBox(height:20),
// 登入按鈕
Container(
width:double.infinity,
height:40,
child:RaisedButton(
child: Text("登入"),
onPressed:(){
print(this.sex);
print(this.username);
print(this.hobby);
print(this.info);
},
color:Colors.blue,
textColor:Colors.white
)
)
],
)
)
),
);
}
}
相關文章
- Python簡單函式迴圈綜合例項Python函式
- 網站綜合例項(轉)網站
- 網站綜合例項 (轉)網站
- WebGL多模型光照綜合例項Web模型
- Flutter 入門例項Flutter
- 單例項刪除ASM例項單例ASM
- 用flutter很簡單的實現一個時光軸樣式【flutter20個例項之五】Flutter
- 單例與單例項之爭單例
- 基礎python5個例項運用Python
- Android專案常用功能綜合例項Android
- React獲取元件例項React元件
- 元件例項 $el 詳解元件
- Android 簡單瀏覽器例項-webview控制元件Android瀏覽器WebView控制元件
- Flutter 中的單例模式Flutter單例模式
- Flutter(able) 的單例模式Flutter單例模式
- javascript求餘和除法運算簡單例項程式碼JavaScript單例
- 例項 - Vue 單頁應用:記事本Vue
- Flutter 例項 - 從本地到Flutter通訊 - Event ChannelsFlutter
- Flutter 例項 - 載入更多的ListViewFlutterView
- “單例”模式與它在原始碼中的運用單例模式原始碼
- React元件/元素與例項分析React元件
- websocket簡單例項Web單例
- RAC 例項 遷移到 單例項 -- 使用RMAN Duplicate單例
- Flutter元件之ClipRRect簡單使用Flutter元件
- 05-論證基礎:綜合運用
- JavaScript in運算子程式碼例項JavaScript
- webpack+react+antd單頁面應用例項WebReact
- js prototype原型應用簡單例項程式碼JS原型單例
- ul、li列表簡單實用程式碼例項
- 單資料庫捕獲應用例項——流資料庫
- 11GR2 Active Duplicate過程(單例項對單例項)單例
- java多執行緒結合單例模式例項,簡單實用易理解Java執行緒單例模式
- 用flutter給圖片加個好看的遮罩層【flutter20個例項之六】Flutter遮罩
- 05 - 微信小程式例項開發 - 綜合小娛樂微信小程式
- JavaScript單例模式概念與例項JavaScript單例模式
- 單例模式 - 只有一個例項單例模式
- UML用例圖例項解析
- [Android]Gank 元件化例項AppAndroid元件化APP