Android 为什么View.getHeight()在同一线程上执行度量传递时返回0?

Android 为什么View.getHeight()在同一线程上执行度量传递时返回0?,android,Android,我只是android开发的初学者。在设置视图的view.setviability(view.VISIBLE)之后,我试图立即使用view.getHeight()方法获取视图的高度 View.setVisibility(View.VISIBLE); Int viewHeight=View.getHeight;. // which returns 0 我可以理解,我们需要等待实际测量的绘图阶段,并且需要使用ViewTreeObserver侦听器获取尺寸。但我的问题是,我认为Android在同一

我只是android开发的初学者。在设置视图的
view.setviability(view.VISIBLE)
之后,我试图立即使用
view.getHeight()
方法获取视图的高度

View.setVisibility(View.VISIBLE);
Int viewHeight=View.getHeight;.   // which returns 0
我可以理解,我们需要等待实际测量的绘图阶段,并且需要使用
ViewTreeObserver
侦听器获取尺寸。但我的问题是,我认为Android在同一个线程中完成了所有的度量和布局过程。然后,当我们调用
View.SetVisibility()
时,在执行下一行获取高度之前,它将重新计算并进行所有测量和布局。那为什么还没有准备好呢??Android是否正在部署其他线程进行测量和布局


我很抱歉,如果我的问题是错误的,太基本,因为我只是一个初学者,试图了解的东西。我们将非常感谢您的帮助。谢谢

测量和布局推迟到下一个布局周期。这样,如果您在一个代码块中更改多个视图的大小/可见性,它就不必执行多个布局重新计算。

非常感谢您的澄清。您能否提供更多关于布局周期执行频率的信息,或分享其他相关文档??先谢谢你。。。