
*****
```
~~~
import 'package:flutter/material.dart';
class FormDemoPage extends StatefulWidget {
@override
_FormDemoPageState createState() => _FormDemoPageState();
}
class _FormDemoPageState extends State<FormDemoPage> {
String username;
int sex = 1;
List hobby = [
{
"checked" : false,
"title":"吃饭"
},
{
"checked" : true,
"title":"写代码"
},
{
"checked" : true,
"title":"购物"
},
];
List<Widget> _getHobby(){
List<Widget> l = [];
for(var i = 0; i < this.hobby.length; i++){
l.add( Text(this.hobby[i]["title"] + ":"));
l.add(
Checkbox(
value: this.hobby[i]["checked"],
onChanged: (v){
setState(() {
this.hobby[i]["checked"] = v;
});
}
)
);
}
return l;
}
void _setSexChanged(v){
setState(() {
this.sex = v;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("登记"),
),
body: Padding(
padding: EdgeInsets.all(20),
child: Column(
children: <Widget>[
TextField(
decoration: InputDecoration(
hintText: "请输入用户姓名",
),
onChanged: (v){
setState(() {
this.username = v;
});
},
),
Row(
children: <Widget>[
Text("男"),
Radio(
value: 1,
groupValue: this.sex,
onChanged: _setSexChanged,
),
SizedBox(width: 20),
Text("女"),
Radio(
value: 2,
groupValue: this.sex,
onChanged: _setSexChanged
),
],
),
SizedBox(height: 20,),
SizedBox(height: 20),
Column(
children: this._getHobby(),
),
Container(
width: double.infinity,
height: 40,
child:RaisedButton(
color: Colors.blue,
textColor: Colors.white,
child: Text("登陆"),
onPressed: (){
print(this.username);
print(this.sex);
print(this.hobby);
}
),
),
],
),
),
);
}
}
~~~
```
- 开始
- 盒子(容器)
- 盒子属性
- 盒子圆角属性
- Padding
- Transform(旋转)
- Alignment(文字显示位置)
- 备注
- 给任何元素加点击事件
- 主题
- Text
- overflow(文字溢出处理)
- textScaleFactor(文字缩放倍率)
- maxLines
- TextAlign
- TextStyle(字体样式)
- 图片
- 本地引入
- 远程引入
- 属性
- 圆形图片功能实现方法1
- 圆形图片功能实现方法2
- 列表
- 垂直列表
- Demo
- 图文列表
- 全图列表
- 水平列表
- 动态列表(使用自定义列表)
- 动态列表(官方API)
- 页面布局
- 网格布局(更强大的布局)
- GridView(竖xiang)
- 使用DEMO
- GridView.builder(不常用)
- 横向布局(ROW)
- (Column)垂直布局
- Stack层叠组件
- AspectRatio(比例继承上层组件宽高)
- Card组件
- Wrap(流布局)
- Expanded自适应
- 按钮
- 凸起|基本按钮
- 凸起-阴影按钮
- 自适应按钮
- 按钮加图标
- 圆角按钮
- 圆按钮
- 常按水波纹设置
- OutlineButton按钮
- ButtonBar按钮组
- 浮动按钮
- 有状态组件
- DEMO
- 底部导航
- 底部导航实现点击切换
- 代码分离+底部切换+内容切换
- 页面传值|页面跳转
- 右下角浮动按钮
- 命名路由|动态传参|推荐|项目基础架构
- 备注函数
- 路由
- 导航栏
- 子导航
- 抽屉
- 顶部加按钮
- 设置bar高度
- 表单
- CheckBox
- Radio
- FORM-DEMO
- 日期
- 常用第三方
- swiper
- ALert
- HandleAlert
- 网络
- 请求
- Body
- scrollDirection
