view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
tangweiguo0305198725 分钟前
Android SSE 流式接收:从手写到框架的进阶之路大尚来也1 小时前
PHP 反序列化漏洞深度解析:从原理利用到 allowed_classes 防御实战sp42a1 小时前
通过 RootEncoder 进行安卓直播 RTSP 推流SY.ZHOU2 小时前
移动端架构体系(一):组件化恋猫de小郭3 小时前
Android 17 新适配要求,各大权限进一步收紧,适配难度提升流星白龙3 小时前
【MySQL】9.MySQL内置函数进击的cc3 小时前
Android Kotlin:扩展函数如何优雅封装Android API进击的cc3 小时前
Android Kotlin:空安全机制在Android中的实战应用没有了遇见5 小时前
Android 实现天猫/京东/抖音/咸鱼/拼多多等商品详情页面智能跳转APP乾坤一气杀6 小时前
Kotlin 协程线程切换原理 —— 以 Dispatchers.IO 为例