1. 程式人生 > >Android中requestLayout()與 invalidate()的區別

Android中requestLayout()與 invalidate()的區別

invalidate()方法雖然最終會呼叫到performTraversals()方法中,但這時measure和layout流程是不會重新執行的,因為檢視沒有強制重新測量的標誌位,而且大小也沒有發生過變化,所以這時只有draw流程可以得到執行。而如果你希望檢視的繪製流程可以完完整整地重新走一遍,就不能使用invalidate()方法,而應該呼叫requestLayout()了。這個方法中的流程比invalidate()方法要簡單一些,但中心思想是差不多的,這裡也就不再詳細進行分析了