2014-01-15 86 views
0

我想聆聽特定視圖的尺寸變化。這種變化可能是由於方向改變,其他視圖重新調整大小等原因造成的。如何聆聽特定視圖的變化?

我試過這個,通過使用MYVIEW.getViewTreeObserver().addOnGlobalLayoutListener(MYGLOBALLAYOUTLISTENER)但是每次全局佈局改變時都會調用這個,不管MYVIEW有什麼變化。

我怎樣才能只聽MYVIEW維度的變化。

我可以使用OnGlobalLayoutListener,然後檢查MYVIEW的座標,然後啓動相應的方法,但這似乎並不是一個具體的解決方案。

如果還有其他方法,請與我分享。

幫助讚賞。

回答

2

你可以try the onLayoutChangeListener on your view,這將給你的觀點的新佈局界限每一個應用程序需要重做的佈局

+0

感謝您的回覆trippedout時間! 我認爲onLayoutChangeListener不會更新方向更改。在佈局在方向更改後重新繪製之前調用它。我想要的東西與onWindowFocusChange工作方式相同,但是對於指定的視圖。 –

+0

您是否嘗試覆蓋您的實際視圖的onLayout調用?如果onLayoutChangeListener不會被觸發,那麼我打賭你onLayout在方向改變時被調用 – trippedout

+0

onLayoutChangeListener在方向改變後會觸發,但問題是在佈局放置在屏幕上之前觸發。我正在尋找一種方法,一旦佈局在屏幕上完成,就會觸發。這是可以實現的使用onWindowFocusChange或使用viewTreeObserver,但正如我上面提到的,我不能使用它們。 –