1.1.其實這個LayoutParams類是用於child view(子視圖) 向 parent view(父視圖)傳達自己的意願的一個東西(孩子想變成什么樣向其父親說明)其實子視圖父視圖可以簡單理解成
一個LinearLayout 和 這個LinearLayout里邊一個 TextView 的關系 TextView 就算LinearLayout的子視圖 child view 。需要注意的是LayoutParams只是ViewGroup的一個內部類 這里邊這個也就是ViewGroup里邊這個LayoutParams類是 base class 基類 實際上每個不同的ViewGroup都有自己的LayoutParams子類
比如LinearLayout 也有自己的 LayoutParams 大家打開源碼看幾眼就知道了
myeclipse 怎么查看源碼 請看http://byandby.iteye.com/blog/814277
下邊來個例子
Java代碼
//創建一個線性布局
private LinearLayout mLayout;
mLayout = (LinearLayout) findViewById(R.id.layout);
//現在我要往mLayout里邊添加一個TextView
//你可能會想直接在布局文件里邊配置不就O 了 那是 但是這里為了說明問題我們用代碼實現
TextView textView = new TextView(Activity01.this);
textView.setText("Text View " );
//這里請不要困惑這里是設置 這個textView的布局 FILLPARENT WRAPCONTENT 和在xml文件里邊設置是一樣的如
/**<TextView
android:layoutwidth="fillparent"
android:layoutheight="wrapcontent"
android:text="Text View"/>*/
//在xml里邊怎么配置高寬大家都會的。
//第一個參數為寬的設置,第二個參數為高的設置。
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
//調用addView()方法增加一個TextView到線性布局中
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,FILLPARENT,即填滿(和父容器一樣大小);
3,WRAPCONTENT,即包裹住組件就好。
備注:
具體的復雜的上篇動態生成相對布局的博文里有介紹,可以具體參考。
轉載地址:http://my.eoe.cn/807225/archive/1574.html