【发布时间】:2015-08-13 17:55:07
【问题描述】:
问题: 假设我们有一个简单的案例:我们有 view 并且我们必须在这个视图上显示一些数据。我们使用静态方法 showData(View view) 来做到这一点。我想知道测量视图布局的确切时刻,我可以访问 getWidth() getHeight() 并确保这是我的视图的最终宽度和高度。
我知道什么:(不确定我是否 100% 正确):
我知道 3 种不同的方法可以做到这一点
- view.addOnLayoutChangeListener - 我们知道当布局改变时,我们 可以得到高度和宽度
- view.getViewTreeObserver().addOnGlobalLayoutListener - 就我而言 几乎一样,但我们稍后会得到信息。因为 layoutChange 从子节点到根节点的气泡,以及从根节点到子节点的 globalLayout (对吧?)。
- view.post(Runnable r) - 正在工作,但我不知道为什么 runnable 是 在测量视图后发布到 ui 线程执行。
问题: 知道该视图已被衡量的最佳方法是什么?为什么?
【问题讨论】:
标签: android layout view measure