2012-01-31 73 views
12

Tôi có các trường văn bản mà tôi đã tạo động. Nhưng tôi dường như không thể thiết lập các thông số bố trí cho chúng. Vui lòng cho tôi biết tôi đang làm gì sai.Cách tự động đặt thông số bố cục trong Android?

Tôi có thể tạo các trường không có tham số bố cục. Tuy nhiên, nếu tôi sử dụng LayoutParams, nó thậm chí không được tạo ra.

Code:

TableLayout table = (TableLayout) findViewById(R.id.TableLayout1); 

TableRow tr = new TableRow(this); 
LinearLayout.LayoutParams trparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
tr.setLayoutParams(trparams); 

cg[i] = new EditText(this); 
weight[i] = new EditText(this); 
cg[i].setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 
weight[i].setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 

//Here's where it goes wrong. By adding fieldparams, the text field doesn't even get generated. 
LinearLayout.LayoutParams fieldparams = new LinearLayout.LayoutParams(10, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 
tr.addView(cg[i], fieldparams); 
tr.addView(weight[i], fieldparams); 

table.addView(tr); 
+6

Bạn có sử dụng linearlayout.layoutparams trên tablerow không? Nó shud được tablerow.layoutparams – Amit

+1

Nice bình luận ... butlittle chỉnh Amit.it sẽ được TableLayout không TableRow – Sameer

Trả lời

14

Bạn đang thêm Bảng Row vào bảng để sử dụng TableLayout.LayoutParams thay vì LinearLayout.LayoutParams .Như chúng tôi sử dụng LayoutParam theo cha mẹ, trong đó chúng ta sẽ thêm

6

Bạn đã sử dụng TableRow.LayoutParams thay vì LinearLayout.LayoutParams

Thay thế mã của bạn

LinearLayout.LayoutParams fieldparams = new LinearLayout.LayoutParams(10, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 

bằng mã bên dưới.

TableRow.LayoutParams fieldparams = new TableRow.LayoutParams(10, TableRow.LayoutParams.WRAP_CONTENT, 1.0f); 

Làm việc tốt. Hãy cho tôi biết chuyện gì đã xảy ra. :-)

Các vấn đề liên quan