Flutter版本玩Android(2)——主页面数据获取

上一部分构造了主页面,这一部分主要完成主页面三个tab的数据获取,下一步的点击事件目前都未处理。

先看下效果:

使用的库

这部分接入了几个三方库,分别是:

  • 网络库:Dio,这部分封装了一个单例出来,负责网络请求
  • 首页轮播图:BannerView
  • json序列化:json-serializable,这部分需要注意如何生成辅助代码,可以参考后面的example
  • 首页下拉刷新、上拉加载:pulltorefresh

state管理

对于首页tab,使用了pulltorefresh控件;对于知识体系和公众号tab,都使用了自身的管理,定义了三种状态,LOAD、SHOW以及ERROR,根据不同state加载不同内容。 大体结构如下代码:

@override  Widget build(BuildContext context) {    return Container(      child: _createBody(),    );  }
  Widget _createBody() {    switch (_page_state) {      case PAGE_STATE.STATE_LOAD:        return Center(          child: CircularProgressIndicator(),        );      case PAGE_STATE.STATE_ERROR:        return Center(          child: RaisedButton(            onPressed: () {              _fetchWeChat();            },            child: Text('出错了,请重试'),          ),        );
      case PAGE_STATE.STATE_SHOW:        return _createShowBody();    }  }

代码

关于代码,可以参考: https://github.com/wangli135/wan_android/tree/07733ad17d02acc048925355a874c20004c96f94

参考

  • json-serializable example
  • pull to refresh

原文发布于微信公众号 - 每天学点Android知识(android_every_day)

原文发表时间:2019-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券