2015-10-07 11 views
5

我們知道ViewTreeObserver用於註冊可以在視圖樹中通知全局更改的偵聽器。在這個類中定義的兩種方法是 addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener聽衆)和addOnPreDrawListener(ViewTreeObserver.OnPreDrawListener listener)。但是這些方法的目的對開發人員網站中描述的我來說是不可理解的。我試圖瞭解它,並在谷歌搜索,但無法找到關於這個問題的清晰圖片。任何幫助對我來說都非常少。addonGlobalLayoutListener和addOnPreDrawListener之間的區別

回答

4
OnPreDrawListener 

在onDraw()方法被調用之前調用。此時,樹中的所有視圖都被測量並給出一幀。因此,你可以適當在這個回調

OnGlobalLayoutListener 

此偵聽器被調用操作觀點: - 可見性狀態發生變化時。在示例中,當繪製視圖時,它變得可見並且被調用。 - 當您添加視圖樹狀態更改