2022.6.28
做了个静态页面,熟悉项目大概框架。
- 适配插件flutter_screenutil.dart,init后直接在数字后加.w(宽度)或.h(高度)
```加入设计稿尺寸
ScreenUtil.init(
context,
designSize: const Size(375, 667),
);
- 配置OutlineButton的圆角和背景颜色
style: ButtonStyle(
/// 设置按钮的圆角
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(17))),
backgroundColor:
MaterialStateProperty.all(const Color(0xFFD88D00))),
),
2022.6.30
- 工作内容:了解grpc(rpc-remote procedure call远程过程调用,对比于通信协议http,rpc是一个完整的远程调用过程,包含接口规范、传输协议、数据序列号和反序列化规范),grpc是谷歌的开源rpc框架,基于http/2协议,其拥有多路复用、服务器推送、头部压缩、二进制传输。
- 接口调用流程,先new一个provider,再通过provider调用客户端接口,还要将参数request包装最后放进接口调用。
- EventBus事件总线,可以在全局定义(Get.put(()=>EventBus()),然后新开一个类作为事件,然后可以分别在两个组件通过事件传递数据或信息,
var eventBus = Get.find<EventBus>();eventBus.fire(InvitaCodeEvent());_eventBus.on<InvitaCodeEvent>().listen((event) {})
2022.7.5
- 工作内容:编写tab控制不同listView的页面,编写逻辑接口。
注意,初始化变量时可以生成实例对象以免报错,在接口调用时clear()后重新赋值
- 对于tab分类下,使用同一个widget的组件但不同的加载数据时,首先编写一个Model作为接口数据类,
- 接着拿到分类数量后用一个List分别创建并装载Model实例(带id),接着遍历所有分类,并调用每个ListView的接口赋值给每一个Model实例,保证每个页面的model都已经赋值。
- 最后根据分类tab循环创建builder,
每个上拉刷新的controller也要放到循环里面生成找到对应实例并赋值使用。
graph TD
变量多且繁杂时创建有一个Model类---初始化变量---如果初始Widget需要build,则赋值实例化对象 --> 获取数据后,若有多个ListView则循环生成多个Model实例并放进一个数组,还要赋值每一个Model实例 --> 最后循环创建builder
-
上拉刷新下拉加载插件:
pull_to_refresh_flutter3: ^2.0.1 -
页面缓存。indexStack和AutomaticKeepClientMixin. 4.加载loading——明天写
2022.7.6
-
数据加载前设置loading,设置全局变量bool,用CircularProgressIndicator().
-
platform.isAndroid判断安卓ios
-
MediaQuery.of(context).size.width获取设备信息
-
查找bug,先debug是否运行到函数里面。
2022.7.9
-
解决ListView.Builder中不设置高度报错,设置高度无法动态展示的bug,原因是不能在itemBuilder里面嵌套row,否则必须设定高度。
-
解决虚线圆点布局问题,利用插件dotted_decoration、tab_indicator_styler,虚线边框使用。
-
sticky_headers插件,吸顶效果,之后看看源码实现
-
造轮子咨询页。
2022.7.20
这周开始赶项目了,29号前完成第一阶段。 这段时间主要完成评论点赞列表,了解getx的用法,多语言配置的流程,使用.obs可以实现部分响应式,如果使用setState就去整个组件重新build。 这两天在做走马灯组件,之后要自造一个走马灯组件使用。
2022.7.27
- 今天入职刚好一个月,已经熟悉项目框架和熟练接口调用流程,了解项目多语言和主题配置,全局依赖注入等等。
- 记录这个月遇到两个比较大的问题:
- ListView滑动时监听每一个item,获取index,而且每个item高度不一致---等待fix
- Drawer需要多层嵌套时返回直接收起整个Drawer,目前包裹一层自定义DrawerController后,返回多了一层遮罩层,这是因为Scaffold里面内置写死了一层Controller,导致两层返回。------等待fix
2022.8.17
1.完成Combo详情页功能,包含有折线图、倒计时、各种底部弹窗(学到了底部输入弹窗,设置autofocus就好)评论、点赞、海报分享存储本地相册。
- 有个sb问题困扰我一星期,obx不能放在samrtfresh插件里面,否则无法触发滑动加载。
- 还有获取手机本地储存权限,permission——handler插件,需要设置系列参数,首页根据插件realme配置好两步,如何会发现无法获取插件函数,此时可能是gradle版本不够,升级到7.0,接着将 android.jetifier.blacklist=bcprov-jdk15on改为 android.jetifier.ignorelist=bcprov-jdk15on,这是因为7.0没有blacklist.
- 还有个跳转h5没解决,好像比较麻烦要配置封装调用js,这个之后要学习并记录才行。
- 还有极光推送也要学习并记录。