View工作原理 Measure過程

2021-08-21 05:07:44 字數 1060 閱讀 9116

知識點:

view的measure過程和activity的生命週期不同步

一、view的measure過程

measure是final,不可重寫;

measure---onmeasure---setmeasureddimension--- getdefaultsize這裡atmost和exactly進行了相同的操作

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec) else if (widthspecmode == measurespec.at_most) else if (heightspecmode == measurespec.at_most)

}

二、viewgroup的measure過程

除了完成自己的measure過程外,還會遍歷所有了元素的measure,提供乙個measurechildren方法來進行。

三、在activity啟動時,需要獲取view的寬高。

2、view.post(通過runnable) 

measure錯誤用法

View框架之measure 流程

注意 1.以下measurespec用ms來代替 ms具體會在後面介紹 2.該時序圖描述的是從viewrootimpl開始的measure 過程,因為viewrootimpl是window與view連線的樞紐 3.該時序圖著重於大概流程及重要方法的作用,具體 細節會放到後面介紹 4.decorvie...

普通View的measure流程

對於普通的view,其測量在viewgroup中的measurechildwithmargins函式中呼叫child view的measure開始測量。1 從measure函式開始 1 public final void measure int widthmeasurespec,int height...

View 的工作原理

view 通過 measure 來測量 view 的寬高,layout 來確定 view 在父容器中的放置位置,draw 則負責將 view 繪製在螢幕上。measure 完成後,可以通過 getmeasuredwidth 和 getmeasuredheight 獲取 view 的寬高,在幾乎所有情...