view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
刘大猫.1 小时前
重塑经典:Snapseed4.0全面登陆安卓,内置“胶片相机”与专业手动模式Languorous.1 小时前
MySQL聚合查询:COUNT、SUM、AVG用法,实战案例演示沅霖1 小时前
Android Studio Java工程开发环境,怎么切换到Kotlin开发环境largecode1 小时前
企业名称能在来电显示吗?号码显示公司名服务打通多终端展示龙之叶1 小时前
Android 12:从 Editor 到 FloatingToolbar 全局收敛长按菜单Kapaseker2 小时前
Kotlin SharedFlow 的三个参数到底有啥用DogDaoDao2 小时前
Android MediaCodec 全面详解:从入门到精通重生之小比特2 小时前
【MySQL 数据库】用户管理与权限控制御水流红叶2 小时前
Android-Unity游戏逆向思路刮风那天2 小时前
Android 验证进程优先级设置是否成功