view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
用户02738518402616 小时前
[Android]RecycleView的item用法前行的小黑炭17 小时前
Android :为APK注入“脂肪”,论Android垃圾代码在安全加固中的作用帅得不敢出门18 小时前
Docker安装Ubuntu搭建Android SDK编译环境tangweiguo0305198718 小时前
Android Kotlin 动态注册 Broadcast 的完整封装方案fatiaozhang952718 小时前
浪潮CD1000-移动云电脑-RK3528芯片-2+32G-安卓9-2种开启ADB ROOT刷机教程方法前行的小黑炭19 小时前
Android 不同构建模式下使用不同类的例子:如何在debug模式和release模式,让其使用不同的类呢?andyguo19 小时前
AI模型测评平台工程化实战十二讲(第一讲:从手工测试到系统化的觉醒)2501_9159214319 小时前
小团队如何高效完成 uni-app iOS 上架,从分工到工具组合的实战经验幂简集成20 小时前
通义灵码 AI 程序员低代码 API 课程实战教程2501_9160088921 小时前
uni-app iOS 文件管理与 itools 配合实战,多工具协作的完整流程