flutter 的使用学习

1.环境搭建
参考中文网 一步一步操作即可
https://flutterchina.club/
2.demo练习
了解无状态widget和有状态widget ----类似于layout的东西,我用的比较多的是Container,但是寻找的几种适配方案,例如flutter_ScreenUtil 。 尝试了下 觉得有些地方还是存在问题(仅对我来说),另外的一种方案是通过导入dart.ui来获得屏幕信息,根据图纸自己计算。地址:https://github.com/OpenFlutter/flutter_ScreenUtil

3.网络请求 dio

static Dio dio;
static const String API_PREFIX = 'https://xnpool/api/';
static const String oauth_PREFIX = 'https://auth.xnpool.cn/';
static const int CONNECT_TIMEOUT = 10000;
static const int RECEIVE_TIMEOUT = 3000;
static HttpUtils instance;
CancelToken cancelToken = new CancelToken();

  //单例模式
static HttpUtils getInstance(){
  print("getInstance");
  if(instance == null){
    instance  = new HttpUtils();
  }
  return instance;
}
HttpUtils(){
//基础配置
dio = new Dio();
dio.options.baseUrl=API_PREFIX;
dio.options.responseType=ResponseType.plain;
dio.options.connectTimeout=CONNECT_TIMEOUT;
dio.options.receiveTimeout=RECEIVE_TIMEOUT;
dio.interceptors.add(LogInterceptor(responseBody: false));
dio.options.headers={HttpHeaders.authorizationHeader: "Basic     eG5wb29sLWFwcDp4bnBvb2wtYXBwLXNlY3JldA=="};
}

//get请求
get(url, {data, options, cancelToken}) async {
 Response response;
try {
  response = await dio.get(url, queryParameters: data, options: options, cancelToken: cancelToken);
} on DioError catch (e) {
  print('get error---------$e');
  formatError(e);
}
return response.data;
}
//post请求
post(url, {data, options, cancelToken}) async {
Response response;
try {
  response = await dio.post(url, queryParameters: data, options: options, cancelToken: cancelToken);
  print('post success---------${response.data}');
} on DioError catch (e) {
  print('post error---------$e');
  formatError(e);
}
return response.data;
}

4.调用

_getDataList() async {
      accesstoken = await Shared_Preutils.getString("access_token");
     var result = await HttpUtils.getInstance().get(
        "https://xxxxxxxxx",
        data: {"access_token": accesstoken});
    setState(() {
      datas=new CoinInfoBeens.fromJson(json.decode(result.toString())).content;
      text.add(datas.datas[chosepos].dailyEarning);
    text.add(datas.datas[chosepos].onlineMiner.toString());
    text.add(datas.datas[chosepos].hashrate.toString());
    text.add(datas.datas[chosepos].caculTotal);
  });
}

5.json解析是通过 https://flutterchina.club/json/
无法使用类似于gson的那种东西 附上一个工具网址(会用上的):https://caijinglong.github.io/json2dart/index_ch.html

github地址:https://github.com/loveyyy/flutter_test

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 特别说明 当前博客平台账号已废弃,如果有使用细节问题请前往我新博客平台进行讨论交流。 个人博客平台 HuRuWo的...
    善笃有余劫阅读 4,987评论 0 30
  • Flutter的开源项目:https://www.jianshu.com/p/7b0642a27eb0 Flutt...
    JasmineBen阅读 6,821评论 0 18
  • 山城之大,熙熙攘攘; 雾都之杂,光怪陆离。 嘉陵江畔,寂静船泊。 宁当生活麻辣烫的角色,不做雾都夜话的人。 崽儿崽...
    山城徒步阅读 140评论 0 1
  • 谷雨连春夏,景色最是佳。 无须添国色,一杯雨前茶。
    流云的天空阅读 464评论 2 3
  • 书法艺术需要国学的滋养 “国学修养与书法•首届全国青年书法创作骨干高研班”是由中国书法家协会主办,中国人民大学国学...
    袭明215阅读 332评论 0 0