flutter 滑动优化

1:

如果ListView是用的children[]方式,快速滑动会卡顿
建议使用SingleChildScrollView

2:

  • 列表中有视频卡片
    • 停止滑动时,若列表中有视频播放,由于画面一直在变化,检测工具无法判断是滑动停止;同时,由于视频 fps 值为 30 左右,会导致流畅度数据偏低
    • 如何避免:检测过程中,需保证列表滑动不停止

3:

  1. 对于长列表,避免使用 ListView() 构造函数,推荐使用 ListView.builder 构造函数

4:

主 isolate 优化 5. 减少或延迟 widget build 中非视图逻辑,如曝光埋点延迟到滑动停止聚合触发 5. 列表 Item 高度可知的情况下,推荐设置 itemExtent,减少滑动中频繁计算列表高度 5. 使用 const 修饰无需变更的 widget 或普通对象 5. 使用 AnimatedBuilder 时,避免在不依赖于动画的 widget 的构造方法中构建 widget 树。动画的每次变动都会重建这个 widget 树。而应该构建子树的那一部分,并将其作为 child 传递给 AnimatedBuilder 5. 避免在动画中剪裁。如果可能,请在动画开始之前预先剪切图像

5:

Render 线程优化 10. 对于频繁更新的控件(如动画),使用 RepaintBoundary 隔离它,创建单独 layer 减少重绘区域 10. 使用图片替换半透明效果 10. 减少 saveLayer(ShaderMask、ColorFilter、Text Overflow)、clipPath的使用,提升 render 线程性能 10. 避免使用 Opacity widget,尤其是在动画中避免使用。请用 AnimatedOpacity 或 FadeInImage 进行代替 10. 避免使用带换行符的长文本

6:三方组件:

DXTextWidget

7:

  1. 优化每个任务,挤压 CPU 运算量,保证一帧时间(16.6 ms)完成任务 flutter 中的主流优化思路,前面的优化手段都是这个思路

8: 3.7版本的新功能

RootIsolateToken rootIsolateToken = RootIsolateToken.instance!;

Isolate.spawn((){

//方法

}, rootIsolateToken);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值