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

目录

1.FutureBuilder

2.StreamBuilder


异步组件

 

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",
    );
  }

                                                                      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值