目录
异步组件
1.FutureBuilder
基于最新的future构建自己的部件
属性
builder → AsyncWidgetBuilder<T>:当前构造器使用的构造策略
future → Future<T>:builder当前链接的异步数据 允许为null
initialData → T:future尚未获得或者 future为null 提供给builder的数据
示例
class MyFutureBuilder extends StatelessWidget{
@override
Widget build(BuildContext context) {
//异步读取资源文件中的图片
Future<ByteData> imageData = DefaultAssetBundle.of(context).load("res/images/timg.jpg");
//构造策略
return FutureBuilder(
future: imageData,
builder: (BuildContext context, AsyncSnapshot<ByteData> snapshot){
return Image.memory(snapshot.data.buffer.asUint8List());
},
//默认数据
initialData: null,
);
}
}
2.StreamBuilder
属性
builder → AsyncWidgetBuilder<T>:当前构造器使用的构造策略
initialData → T:默认显示数据信息
stream → Stream<T>:异步数据流 若不为空则使用afterDisconnected更新
示例
@override
Widget build(BuildContext context) {
//异步读取资源文件中的图片
StreamController<String> streamController = new StreamController();
streamController.add("res/images/timg.jpg");
//构造策略
return StreamBuilder(
stream: streamController.stream,
builder: (BuildContext context, AsyncSnapshot<String> snapshot){
return Image.asset(snapshot.data.toString());
},
//默认数据
initialData: "res/images/timg.jpg",
);
}