view.post为什么可以获取到view的宽高
时间: 2023-10-11 18:02:52 浏览: 105
源码详解Android中View.post()用法
view.post方法可以获取到view的宽高是因为该方法是用来在View树完成绘制之后执行的,也就是在View被测量、布局和绘制之后执行的。在View完成绘制后,才能够获取到准确的宽高信息。
当我们使用view.post方法时,会将一个Runnable对象提交到消息队列中,等待View树完成绘制后依次执行。在执行Runnable的时候,可以通过view.getWidth()和view.getHeight()这两个方法获取到view的宽高信息。
在View树完成绘制之前,view的宽高可能是0,因为此时视图还没有完成测量和布局。只有在绘制完成后,view的宽高才是准确的。所以如果想要在正确获取view的宽高信息,就需要使用view.post方法,将获取宽高的操作延迟到View完成绘制之后再执行。
总之,view.post可以获取到view的宽高是因为它是在View树完成绘制后执行的,此时可以准确获取到view的宽高信息。
阅读全文