问题:假设我们有简单的情况:我们有视图,我们必须在这个视图上显示一些数据.我们使用静态方法showData(View view)来做到这一点.我想知道测量视图布局的确切时刻,我可以访问getWidth() getHeight()并确保这是我视图的最终宽度和高度.
我知道什么 :(不确定我100%是对的):
我知道有3种不同的做法
- view.addOnLayoutChangeListener - 我们知道布局何时更改,我们可以获得高度和宽度
- view.getViewTreeObserver().addOnGlobalLayoutListener - 对于我的情况几乎相同,但我们稍后会得到相关信息.因为layoutChange从children到root冒泡,而globalLayout从root到child(对吧?).
- view.post(Runnable r) - 正在工作,但我不知道为什么runnable会在测量视图后发布到ui线程执行.
问题:了解视图的最佳方法是什么?为什么?