requestLayout 和 invalidate 都會觸發整個繪制流程。但是在 measure 和 layout 過程中,只會對 flag 設置為 FORCE_LAYOUT 的情況進行重新測量和布局,而 draw 只會重繪 flag 為 dirty 的區域。
requestLayout 是用來設置 FORCE_LAYOUT 標志,invalidate 用來設置 dirty 標志。所以 requestLayout 只會觸發 measure 和 layout,invalidate 只會觸發 draw。