當前位置:編程學習大全網 - 源碼下載 - Android 自定義控件 layout

Android 自定義控件 layout

Android 繪制流程

View :View主要執行layout方法,使用 serFrame 方法來設置本身 View 的四個頂點的位置,確定View本身的位置。

ViewGroup :ViewGroup主要執行onLayout方法,遞歸遍歷所有子View,確定子View的位置。

我們來看ViewRootImpl中的 performLayout() 方法

看到這裏,那host.getMeasuredWidth() / host.getMeasuredHeight()是什麽?它是直接調用View中的方法,其實就是經過measure後的DecorView的測量寬度和高度。在 Android 自定義控件 measure 中有說明。

2.3.2.1 我們先來看ViewGroup中的 layout() 方法

ViewGroup裏面的layout最終會調入到父類View中的layout,View的layout後面講解。這裏可以先告訴大家,最終會調用View的onLayout方法,而ViewGroup的onLayout是抽象方法,所以它的子類LinearLayout必須要實現。

2.3.2.2 我們再來看LinearLayout中的 onLayout() 方法。

2.3.2.3 挑壹個縱向的吧,我們再來看LinearLayout中的 layoutVertical() 方法。

2.3.2.4 我們再來看LinearLayout中的 setChildFrame() 方法。

又壹次回到了View的layout方法,接下來就看View分發的layout。

我們先來看View中的 layout() 方法。

我們先來看View中的 onLayout() 方法。

空空如也,其實View的布局由父容器決定,所以空實現是正常的,當然也可以在自定義View中進行更改。

?

《Android 視圖模塊 全家桶》

?

Android開發之自定義控件(二)---onLayout詳解

自定義View Layout過程 - 最易懂的自定義View原理系列(3)

  • 上一篇:Siri語音軟件(Siri語音軟件)
  • 下一篇:思考用if選擇語句和switch-case語句解決下面的程序(這是C51的源代碼的)
  • copyright 2024編程學習大全網