小编com*_*986的帖子

addOnLayoutChangeListener vs addOnGlobalLayoutListener vs post(Runnable r)

问题:假设我们有简单的情况:我们有视图,我们必须在这个视图上显示一些数据.我们使用静态方法showData(View view)来做到这一点.我想知道测量视图布局的确切时刻,我可以访问getWidth() getHeight()并确保这是我视图的最终宽度和高度.

我知道什么 :(不确定我100%是对的):

我知道有3种不同的做法

  • view.addOnLayoutChangeListener - 我们知道布局何时更改,我们可以获得高度和宽度
  • view.getViewTreeObserver().addOnGlobalLayoutListener - 对于我的情况几乎相同,但我们稍后会得到相关信息.因为layoutChange从children到root冒泡,而globalLayout从root到child(对吧?).
  • view.post(Runnable r) - 正在工作,但我不知道为什么runnable会在测量视图后发布到ui线程执行.

问题:了解视图的最佳方法是什么?为什么?

layout android view measure

10
推荐指数
1
解决办法
2703
查看次数

标签 统计

android ×1

layout ×1

measure ×1

view ×1