導讀:其實這個LayoutParams類是用于child view(子視圖) 向 parent view(父視圖)傳達自己的意愿的一個東西(孩子想變成什么樣向其父親說明)其實子視圖父視圖可以簡單理解成
簡單說說 自己對 android LayoutParams的理解吧
6 |
android.view.ViewGroup.LayoutParams |
一個LinearLayout 和 這個LinearLayout里邊一個 TextView 的關系 TextView 就算LinearLayout的子視圖 child view .需要注意的是LayoutParams只是ViewGroup的一個內部類 這里邊這個也就是ViewGroup里邊這個LayoutParams類是 base class 基類 實際上每個不同的ViewGroup都有自己的LayoutParams子類 比如LinearLayout 也有自己的 LayoutParams 大家打開源碼看幾眼就知道了
02 |
private LinearLayout mLayout; |
03 |
mLayout = (LinearLayout) findViewById(R.id.layout); |
06 |
TextView textView = new TextView(Activity01. this ); |
07 |
textView.setText( "Text View " ); |
10 |
android:layout_width="fill_parent" |
11 |
android:layout_height="wrap_content" |
12 |
android:text="Text View"/>*/ |
15 |
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams( |
16 |
LinearLayout.LayoutParams.FILL_PARENT, |
17 |
LinearLayout.LayoutParams.WRAP_CONTENT |
20 |
mLayout.addView(textView, p); |
如果還不能理解下邊在來一段直白的說明:
LayoutParams繼承于Android.View.ViewGroup.LayoutParams.
LayoutParams相當于一個Layout的信息包,它封裝了Layout的位置、高、寬等信息。假設在屏幕上一塊區域是由一個Layout占領的,如果將一個View添加到一個Layout中,最好告訴Layout用戶期望的布局方式,也就是將一個認可的layoutParams傳遞進去。
可以這樣去形容LayoutParams,在象棋的棋盤上,每個棋子都占據一個位置,也就是每個棋子都有一個位置的信息,如這個棋子在4行4列,這里的“4行4列”就是棋子的LayoutParams。
但LayoutParams類也只是簡單的描述了寬高,寬和高都可以設置成三種值:
1,一個確定的值;
2,FILL_PARENT,即填滿(和父容器一樣大小);
3,WRAP_CONTENT,即包裹住組件就好。