view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
似霰8 小时前
安卓14移植以太网&&framework-connectivity-t 编译问题Android-Flutter8 小时前
kotlin - 显示HDR图(heic格式),使用GainMap算法,速度从5秒提升到0.6秒雨白9 小时前
协程进阶:协作、互斥与共享状态管理用户41659673693559 小时前
深度剖析 Android Context:启动 Activity 与 View 创建的“内幕”方白羽10 小时前
Android 唯一UUID方案一个小狼娃10 小时前
Android集成Unity避坑指南川石课堂软件测试10 小时前
Python | 高阶函数基本应用及Decorator装饰器行走的陀螺仪10 小时前
Flutter 开发环境配置教程前端与小赵11 小时前
uni-app开发安卓app时控制屏幕常亮不息屏百锦再11 小时前
第8章 模块系统