Tabbar控件实现
SingleTickerProviderStateMixin 实现 Tab 的动画切换效果
每个 Tab 对应的 StatefulWidget 的 State ,需要通过 with AutomaticKeepAliveClientMixin ,然后重写 @override bool get wantKeepAlive => true; ,就可以实不重新构建的效果了
PageView 实现图片轮播的效果
FadeInImage.assetNetwork 可以设置占位图的Image

小部件生命周期:

高级特性解除状态
- 抽离成组件

List list = List(); list ..add(HomeScreen)..add(PageScreen); ..用完之后还是返回list
在flutter中页面的概念是widget
123.4456.toStringAsFixed(2) 四舍五入
app实战
import 'package:http/http.dart' as http async 和awit 同时使用
dart异步处理
延迟加载:
Future.delayed(Duration(milliseconds: 400), () => Scaffold.of(context).openEndDrawer());
可以用async 和awit 写成同步调用
Future和node js promise 相同
等分用弹性布局 ,比如三等分使用Flex, Expanded {flex:2},宽度去掉就自动填满整个屏幕
SizeBox 用来修饰子组件大小
定位:Positioned 层叠覆盖
Wrap 流式布局
spacing :横向间距 runSpacing:垂直间距
限制类容器BoxConstraints 有最小高度和宽度
获取上一个页面传过来的参数
页面:
在 无状态组件 接收上一个页面传过来的参数

Map<String, dynamic> arguments = settings.arguments;
return Scaffold(body: xxxxPage(arguments: arguments));
xxxxPage是有状态组件
Dart下 ??,??= ,AA ?? "999" 表示如果AA为空,返回999、
AA ??= "999" 表示如果AA为空,给AA设置为999
Future对象表示异步操作的结果,dart中,很多一步操作的方法都会返回一个Future对象,
Future对象只有两种状态,completed和error。对象的then方法可以传递一个状态为completed时的回调函数。
async…await 简化Future操作,不需要设置回调。
Flutter 的实战技巧
InheritedWidget
