获取计算的视图尺寸
请注意,与 View
实例关联的 ViewTreeObserver
实例可能无效,而 View
仍处于活动状态。来自 View.getViewTreeObserver
javadocs:
// The returned ViewTreeObserver observer is not guaranteed to remain
// valid for the lifetime of this View. If the caller of this method keeps
// a long-lived reference to ViewTreeObserver, it should always check for
// the return value of {@link ViewTreeObserver#isAlive()}.
因此,如果你之前已经向 ViewTreeObserver
实例添加了一个监听器并且现在希望将其删除,则最简单的方法是再次在相应的 View
实例上调用 getViewTreeObserver
以接收新的 ViewTreeObserver
实例。 (在现有实例上检查 isAlive
是一项效果较差的工作;如果 ViewTreeObserver
不再存在,那么无论如何你都会获得新的参考!)