view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
故渊at1 天前
系列三:组件化与模块化进阶 | 第11篇 组件化项目规范与问题根治:依赖、资源、Manifest 与混淆的全链路管控故渊at1 天前
系列二:MVVM 深度实战与项目重构 | 第7篇 LiveData & StateFlow 状态管理实战:从“粘包弹”到“丝滑流式”是阿建吖!1 天前
【Linux】信号alexhilton1 天前
AppFunctions:让你的Android应用更容易被AI智能体发现qq3621967051 天前
APK文件签名校验教程:验证APK真伪的完整方法赏金术士1 天前
Android 组件化概念和特征2501_915909061 天前
深入解析Mock.js:功能、应用及实战案例,提升前端开发效率流星白龙1 天前
【MySQL高阶】21.撤销表空间,撤销日志我命由我123452 天前
Android 开发,FragmentPagerAdapter 的 isViewFromObject 方法问题