#1.热重载
安装一次后,修改代码时可以热重载,无需重新安装APP:
#2.属性与类 ctrl+左键,点击查看该属性要接收的是什么类型的实例:
#3.Dart 2.0 可以把 new 去掉 #4.可以把重复的样式封装成函数 
#5.封装页面 
#6.'${widget.counter}' 的意义 **指的就是`'${widget.counter}'`所处的`State` 对应的`StatefulWidget`中的 对应的变量(如这里的count), 如图: (美元符号,花括号,widget. 等,都不可少)**
#7.分隔线 **横向分隔线,对应垂直滑动的列表: 垂直分隔线,对应水平滑动的列表:**
#8.颜色的八位十六进制与int数的对应关系及其应用  ``` final List colorDatas = [ 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 ];
@override Widget build(BuildContext context) { return ListView.builder( padding: EdgeInsets.all(8.0), //类似于onBindViewHolder,index类比position // %10 是为了 颜色数据 可以在 colorDatas中循环读取 itemBuilder: (BuildContext context,int index){ return Icon( Icons.image, color: Colors.blue[colorDatas[index%10]], size: 100, ); }, itemCount: 20, ); }
<br>
#9.文本可以配置Style

<br>
#10.setState()
**官方对setState()的说明:
就是与`UI有关的 需要在APP运行时候动态更新的`数据变量,
便需要配置在setState()中,
如下案例:
案例1:案例2:案例3:案例4:**
<br>
#11.构建布局的技巧
- **变化比较小的可以使用`StatelessWidget`,是一个相对静态的页面;
变化比较大、交互比较多的的可以使用`StatefulWidget`;**
- **根据UI图,构建静态以及可交互的布局**
<br>
#12.framework层定义函数的方式【MaterialPageRoute】

typedef WidgetBuilder = Widget Function(BuildContext context);
**表示用以上这行代码定义之后,
以后可以用`WidgetBuilder` 等价代替 `Widget Function(BuildContext context)`使用;**
<br>
#13.匿名函数写法

<br>
#14.快捷搭建组件架构

<br>
#15.使用主题颜色
color: Theme.of(context).primaryColor,
<br>
#16.巧用 Flutter Outline 进行快捷开发

如:
【原】
点击Text,
再点击Container图标:
代码变成:
<br>
#17.Ctrl + 左键 跟进 组件属性,<br>可以知道属性 对应需要 接受、配置 的 对象\值\类型<br>以及 可以配置的 哪些 对象\值\类型

<br>
#18.居中

<br>
#
<br>
#
<br>
#
<br>
#
<br>
#