onLayout過程學習

2021-07-13 09:50:37 字數 1028 閱讀 5278

view 的layout方法

@suppresswarnings()

public void layout(int l, int t, int r, int b)

int oldl = mleft;

int oldt = mtop;

int oldb = mbottom;

int oldr = mright;

boolean changed = islayoutmodeoptical(mparent) ?

setopticalframe(l, t, r, b) : setframe(l, t, r, b);

if (changed || (mprivateflags & pflag_layout_required) == pflag_layout_required) }}

mprivateflags &= ~pflag_force_layout;

mprivateflags3 |= pflag3_is_laid_out;

}

主要做了幾步,

1.確定view在其父view的位置。

2.setframe方法設定view的四個點。

3.當view的位置發生變化時,呼叫onlayout方法,但是個空實現,所以找子類,如自定義的,或者textview這種。

對於viewgroup,它的onlayout方法會遍歷子view,然後分別呼叫子view的layout方法。

tips 

我們可以在onlayout時獲取到view的測量大小,在onmeasure可能會出現問題。

來看以下**

@override

protected void onlayout(boolean changed, int left, int top, int right,

int bottom)

雖然獲取view的測量寬高和view的實際寬高大多數情況下一樣,但2者的意義不同,乙個onmeasure完成後的,乙個是計算 mright-mleft的值的。

深度學習 學習過程

p1 day1 1.什麼是機器學習 22 44 p2 day1 2.資料集相關09 49 p3 day2 1.特徵工程簡介 06 51 p4 day2 2.字典特徵抽取 13 14 p5 day2 3.one hot編碼 07 55 p6 day2 4.文字特徵抽取12 52 p7 day2 5.特...

學習過程感悟

最近自己一直在自學c 但是進步還是比較緩慢。之前也學習過c,但是掌握的也是比較淺顯粗糙。回顧這一段時間的學習,總結總結學習的過程,對於以後的學習將會有很好的指導意義。其實學習任何東西總是有乙個過程,在這個過程中只有遵循一定的規律,才能夠更加高效。貌似有人將它稱為 道 其實也沒這麼高深吧!首先,在學習...

Oracle學習過程

編號 名稱 內容 1 sql語言 1.資料庫系統的知識和理論 2.基本sql語句 3.對資料進行限定和排序 4.處理單行的函式 5.從多個表中獲取資料 6.使用分組函式來對資料進行聚集 7.子查詢和多列子查詢 8.使用sql plus建立友好的輸出 9.建立和管理表 10.建立檢視和其他的資料庫物件...