Flutter布局基础-基础部件(二)Async widgets

目录

1.FutureBuilder

2.StreamBuilder


异步组件

 

1.FutureBuilder

基于最新的future构建自己的部件

文档

属性

builder → AsyncWidgetBuilder:当前构造器使用的构造策略

future → Future:builder当前链接的异步数据 允许为null

initialData → T:future尚未获得或者 future为null 提供给builder的数据

示例

class MyFutureBuilder extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    //异步读取资源文件中的图片
    Future imageData = DefaultAssetBundle.of(context).load("res/images/timg.jpg");
    
    //构造策略
    return FutureBuilder(
      future: imageData,
      builder: (BuildContext context, AsyncSnapshot snapshot){
        return Image.memory(snapshot.data.buffer.asUint8List());
      },
      
      //默认数据
      initialData: null,
    );
  }
}

                                                                                Flutter布局基础-基础部件(二)Async widgets_第1张图片

 

2.StreamBuilder

 

属性

builder → AsyncWidgetBuilder:当前构造器使用的构造策略

initialData → T:默认显示数据信息

stream → Stream:异步数据流 若不为空则使用afterDisconnected更新

示例

@override
  Widget build(BuildContext context) {
    //异步读取资源文件中的图片
    StreamController streamController = new StreamController();
    streamController.add("res/images/timg.jpg");
    //构造策略
    return StreamBuilder(
      stream: streamController.stream,
      builder: (BuildContext context, AsyncSnapshot snapshot){
        return Image.asset(snapshot.data.toString());
      },
      //默认数据
      initialData: "res/images/timg.jpg",
    );
  }

                                                                      Flutter布局基础-基础部件(二)Async widgets_第2张图片

你可能感兴趣的:(flutter)