在给app的网络请求添加loading过程中,发现一个封装更加完善的网络三方库,里面有很多值得借鉴的细节,特此记录
优点:
- 默认自带loading,如果单个请求不想要loading,可以传递参不显示,自己封装的目前全部显示loading
- 更加友好的控制台json打印
- 封装了公共参数
- 响应拦截
在给app的网络请求添加loading过程中,发现一个封装更加完善的网络三方库,里面有很多值得借鉴的细节,特此记录
优点:
地址:https://github.com/kokohuang/flutter_easyloading
用法,添加到materialApp的builder属性中
1 | class MyApp extends StatelessWidget { |
接下来在任何地方调用
1 | EasyLoading.show(status: 'loading...'); |
示例图片
如果一个组件没有调整内边距的属性,那么可以在它的外层加一层Padding,达到调整位置的效果,效果等同于放到Container里,比Container更轻量级
1 | Padding( |
该组件可以用在container和card组件里,默认有大标题和小标题属性,无需再进行text上下排列组合
1 | Card( |
在开发过程中,Container组件使用多了,会有一些重复的代码,比如矩形边框和圆角,需要额外加decoration,使用card已经默认加上了边框和阴影
1 | Card( |
在一个数组容器里放置两个及其以上radio,当radio的group value和自己value相等时,便是选中状态
1 | int groupValue = 1; |
取用圆角类的only属性,左上,右上,左下,右下,此处圆角半径也是一个类
1 | BorderRadius.only( |
全部圆角则取all
1 | BorderRadius.all( |
在listview或gridview中,用index去获颜色,挨个取一遍
1 | Colors.primaries[index % Colors.primaries.length] |
首先自己写好模型类模板代码
1 | import 'package:json_annotation/json_annotation.dart'; |
然后在终端运行,生成.g.dart文件
1 | flutter packages pub run build_runner build --delete-conflicting-outputs |
渲染过程会生成三棵树
widget树
element树
render object树