vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能

首页 > 实用技巧 > 作者:YD1662023-10-29 00:11:54

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(21)

打开 Debug flag debugDisableClipLayersdebugDisablePhysicalShapeLayers重新检查视图,可以发现部分 ClipRectLayer 是因为图片内容超出视图边界产生,部分 ClipRRectLayer 是因为卡片 Widget 圆角设置以及基于外接纹理的图片控件里设置了 ClipRRect 设置(即便 radius 为0也会设置)

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(22)

理解原理后,我们对闲鱼图片控件新增参数,支持图片内容圆角设置和图片内容宽高裁剪,使 native 层生成的 Bitmap 已经满足圆角和宽高比要求。同时修复 radius 为0也会设置 ClipRRect 的问题。优化后的 Timeline 图如下:

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(23)

4.1.4 其他优化建议

flutter 性能优化相关的优秀文章很多,本文不再对类似的排查和优化手段做赘述,这里做下简单汇总:

4.2 列表 element 复用优化

flutter 列表控件划分为可视区域和 Cache 区域,往下滑动时 element 从底部被创建进入底部 Cache 区域后,再进入可视区域,再进去顶部 Cache 区域,最后被销毁。往上滑动逻辑类似。在不使用 keepAlive 的情况下,来回滑动,曾经创建过的 element 需要重新创建。而在我们的业务中,列表 item Widget 结构是接近的,此时如果能根据类型复用 element,就能一定程度的提升性能。

列表控件源码见 sliver_list.dart 中 RenderSliverList.performLayout element 缓存在 _childElements 数组中,以 index 为索引。源码见 sliver.dart 若 item Widget 结构差异很大,即便复用了 element,Element.updateChild 方法内部最终还是执行了 inflateWidget 方法,对于性能提升就没什么价值了

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(24)

上一页23456下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.