我只是android开发的初学者。我在设置View.getHeight()
之后立即尝试使用view.setviaibility (View.VISIBLE)
方法获取视图的高度
View.setVisibility(View.VISIBLE);
Int viewHeight=View.getHeight;. // which returns 0
我可以理解,我们需要等待实际测量的绘制阶段,我们需要使用ViewTreeObserver
侦听器来获取大小。但我的问题是我认为Android正在进行所有测量和布局传递在同一个线程中。然后,当我们调用View.SetVisibility()
时,它将重新计算并执行所有测量和布局,然后执行下一行以获得高度。那为什么还没准备好呢? Android是否正在部署其他线程以进行测量和布局?
很抱歉,如果我的问题是错误的,而且太基本了,因为我只是一个初学者试图理解事物。任何帮助将受到高度赞赏。谢谢!
答案 0 :(得分:1)
测量和布局推迟到下一个布局周期。这样,如果您在一个代码块中更改许多视图的大小/可见性,则不必执行多个布局重新计算。