view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
时间的拾荒人12 分钟前
MySQL 视图详解祉猷并茂,雯华若锦1 小时前
Appium 3.x安卓按键与通知栏操作全指南码农coding1 小时前
android 12 SurfaceFlinger开机启动分析hunterandroid1 小时前
Paging 3 RemoteMediator 实战:构建离线优先的分页列表码农coding2 小时前
android12 开机启动PMSDays20502 小时前
GPT-Image-2 国风美学人设生成提示词分享浮江雾2 小时前
Flutter第十节-----Flutter布局与组件全解析Jomurphys3 小时前
Compose 适配 - 自适应布局(窗口大小类 WindowSizeClasses、列表详情、辅助窗格)plainGeekDev4 小时前
synchronized → Coroutinessun0077004 小时前
gtest 行覆盖率、函数覆盖率、分支覆盖率 . 一般这3个要达到多少?算达标