view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
雨白4 小时前
Android 快捷方式实战指南:静态、动态与固定快捷方式详解hqk4 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互LING5 小时前
RN容器启动优化实践恋猫de小郭7 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力Kapaseker13 小时前
一杯美式搞懂 Any、Unit、Nothing黄林晴13 小时前
你的 Android App 还没接 AI?Gemini API 接入全攻略恋猫de小郭1 天前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本冬奇Lab1 天前
PowerManagerService(上):电源状态与WakeLock管理BoomHe1 天前
Now in Android 架构模式全面分析二流小码农2 天前
鸿蒙开发:上传一张参考图片便可实现页面功能