view 的 post 执行时,首先会判断view 的 mAttatchInfo 是否为空,如果不为空,则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中;如果为空,则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQueue中,在ViewRootImpl 中第一次执行performTransval时执行 dispatchAttachedToWindow ,在这个方法中执行 mRunQueue.executeActions(mAttachInfo.handler),这样就能保证Runnable 运行时获取到获取到view的宽高,因为这个时候首次performTransval已经执行完,首次测量工也会执行完,之后才会执行这个Runnable,所以这个时候能获取到宽高
相关推荐
水瓶丫头站住17 分钟前
安卓APP如何适配不同的手机分辨率xvch1 小时前
Kotlin 2.1.0 入门教程(五)xvch5 小时前
Kotlin 2.1.0 入门教程(七)望风的懒蜗牛5 小时前
编译Android平台使用的FFmpeg库浩宇软件开发5 小时前
Android开发,待办事项提醒App的设计与实现(个人中心页)ac-er88886 小时前
Yii框架中的多语言支持:如何实现国际化苏金标7 小时前
The maximum compatible Gradle JVM version is 17.zhangphil7 小时前
Android BitmapShader简洁实现马赛克,Kotlin(一)iofomo11 小时前
Android平台从上到下,无需ROOT/解锁/刷机,应用级拦截框架的最后一环,SVC系统调用拦截。我叫特踏实12 小时前
SensorManager开发参考