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

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

利用 AsyncLayoutInflater 原理异步构建视图缓存池,优化首页列表流程如下:

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

其中视图缓存池构建完成的时机在不同机型下不同,可能在列表首屏多卡片构建之前,或构建中,或在用户滑动操作之前完成,或一开始构建就抛出错误停止构建

注意:不能直接使用 AsyncLayoutInflater,AsyncLayoutInflater 在异步构建失败后有一个降级到 UI 线程构建的逻辑,为避免降级逻辑发生导致缓存池在 UI 线程构建,导致页面更加卡顿,需要移除这个降级逻辑:出现异步 inflater 失败,停止缓存池构建。

3.2 ViewDataUnbinder 快速抽离 UI 操作

在卡片数据绑定阶段(RecyclerView.onBindViewHolder),在低端机上耗时较为严重,原因是在卡片数据绑定方法中,而 UI 和非 UI 操作糅合在一起,由于 UI 逻辑必须在 UI 线程执行,最终导致全部逻辑只能在 UI 线程执行。

能想到定义视图数据层,将 UI 和非 UI 操作分离开,然而实际编码发现业务代码改动量大且容易出错,AB 测试逻辑难以实现。那有没有更好的方案,用最少量代码抽离 UI 操作呢?

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

核心思路:编译期根据视图类自动生成 ViewData 类,并替换视图类实例。ViewData 类和视图类拥有相同的关键方法签名,方法执行时记录视图操作,统一切换到 UI 线程执行视图操作。

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

具体使用代码样例如下

1. 注解视图类 使用 ViewDataAnno 注解视图类,UIMethodAnno 注解 UI 操作方法。

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

上一页12345下一页

栏目热文

文档排行

本站推荐

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