Post by Admin on Apr 23, 2017 16:10:57 GMT 7
LayoutParams
Điều chỉnh những View trên ViewGroup. Khi ta gắn những View trên ViewGroup có lẽ nó không thể nào thèm quan tâm chúng ta nghĩ gì. Nhất là EditText, nếu không có giá trị gì trong đó, thì nó sẽ tự điều chỉnh cho nhỏ lại, ta tất nhiên không thích điều này. Ta muốn EditText phải mở rộng ra có thể, và chỉ chừa đúng kích thước cho những View đằng sau. Nếu bạn dùng LinearLayout với kiểu gắn liền kề .HORIZONAL. Ví dụ như sau.
Như vậy, chúng ta đã có thể điều chỉnh được kiếu cách của View trên ViewGroup, giống như khi chúng ta điều chỉnh bằng layout xml.
Chúng ta cũng nên nhớ rằng, LinearLayout là một ViewGroup nhưng nó cũng chỉ là 1 View mà thôi, điều đó có nghĩa gì? Có nghĩa là chúng ta có thể gắn LinearLayout lên một LinearLayout khác, hoặc bất cứ 1 ViewGroup nào khác, chồng lấn, chồng lấn như vậy cho đến khi đúng ý đồ chúng ta muốn thực hiện thì thôi.
Điều chỉnh những View trên ViewGroup. Khi ta gắn những View trên ViewGroup có lẽ nó không thể nào thèm quan tâm chúng ta nghĩ gì. Nhất là EditText, nếu không có giá trị gì trong đó, thì nó sẽ tự điều chỉnh cho nhỏ lại, ta tất nhiên không thích điều này. Ta muốn EditText phải mở rộng ra có thể, và chỉ chừa đúng kích thước cho những View đằng sau. Nếu bạn dùng LinearLayout với kiểu gắn liền kề .HORIZONAL. Ví dụ như sau.
package com.holyeyed.ctrlparam;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
public class MainActivity extends Activity{
EditText ed;
Button bt;
TextView tv;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ed=new EditText(this);
bt=new Button(this);
bt.setText("nhấn");
tv=new TextView(this);
tv.setText("kết quả");
//tạo một LinearLayout cũng tương tự như các View khác
LinearLayout ll=new LinearLayout(this);
//chọn cách sắp xếp theo chiều ngang.
ll.setOrientation(LinearLayout.HORIZONTAL);
//thiết lập thuộc tính cho từng view trên LinearLayout
LinearLayout.LayoutParams lped=new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
//thiết lập độ mở rộng cho nó, nếu 0 là không mở rộng, ngược lại số nào cũng mở rộng hết.
lped.weight=1;
//gán thiết lập này cho EditText
ed.setLayoutParams(lped);
//sau đó gắn từng View vào LinearLayout, thông qua .addView(View)
ll.addView(ed);
ll.addView(bt);
ll.addView(tv);
//cho hiện thị LinearLayout ra màn hình
setContentView(ll);
}
}
Như vậy, chúng ta đã có thể điều chỉnh được kiếu cách của View trên ViewGroup, giống như khi chúng ta điều chỉnh bằng layout xml.
Chúng ta cũng nên nhớ rằng, LinearLayout là một ViewGroup nhưng nó cũng chỉ là 1 View mà thôi, điều đó có nghĩa gì? Có nghĩa là chúng ta có thể gắn LinearLayout lên một LinearLayout khác, hoặc bất cứ 1 ViewGroup nào khác, chồng lấn, chồng lấn như vậy cho đến khi đúng ý đồ chúng ta muốn thực hiện thì thôi.
<LinearLayout style=HORIZONAL>
<GridLayout >….</GridLayout>
<LinearLayout style=VERTICAL>…..</LinearLayout>
<TextView …/>
<Button …/>
</LinearLayout>