2011-06-14 39 views
0

我正在動態創建TableRows。這些TableRows有兩種類型的內容。 部分有4個景點。 還有一些有2意見。使用不同內容動態創建TableRow

問題是,TableRows與兩個,儘量佔據相同的空間,其中有四個佈局。 這是發生:

圖ThisTextViewHasThisSize

圖TV0 _ __ _ __ _ __ _ __ _ ____ _TV1 TV2

...

TableLayout tl = (TableLayout) findViewById(R.id.myTableLayout); 

    for (int i = 0; i < array.length; i++) { 

     TableRow tr = new TableRow(this); 

     ImageButton button = new ImageButton(this); 
     tr.addView(button); 

     TextView tv0 = new TextView(this); 
     tv0.setText(array[i].something0()); 

      if (another type of TableRow) { 
      TextView tv1 = new TextView(this); 
      TextView tv2 = new TextView(this); 
      tv1.setText(array[i].something1()); 
      tv2.setText(array[i].something2()); 
      tr.addView(tv1); 
      tr.addView(tv2); 

     } 
     tr.addView(tv0); 

     tl.addView(tr); 
    } 

有人可以告訴我如何讓TableRows佈局完全獨立於彼此?

+0

你確定'ListView'不適合你的目的嗎? – dmon 2011-06-14 01:58:34

+0

哦,我真的不知道。我需要爲每個「單元格」放置背景圖片。可能嗎?我要去學習一下。 – coffee 2011-06-14 02:16:44

+0

但問題仍然存在... – coffee 2011-06-14 02:36:56

回答

2

您可以使用TableRow.LayoutParams來設置表格中視圖的範圍。例如:

TableRow tr = new TableRow(this); 

//all rows have this button 
ImageButton button = new ImageButton(this); 
tr.addView(button); 

TextView tv0 = new TextView(this); 
tv0.setText("hey"); 

if (some condition == true) { 
    TextView tv1 = new TextView(this); 
    TextView tv2 = new TextView(this); 
    tv1.setText("heay 2"); 
    tv2.setText("hey 3"); 
    tr.addView(tv0); 
    tr.addView(tv1); 
    tr.addView(tv2); 
}else { 
    TableRow.LayoutParams trlp = new TableRow.LayoutParams(); 
    trlp.span = 3; 
    tv.setLayoutParams(trlp); 
    tr.addView(tv0); 
} 
+0

太棒了!謝謝 – coffee 2011-06-14 23:35:25

+0

如果這對你有用,那麼你應該把它標記爲「Accepted」的答案(或者你可以放棄它):-) – 2011-06-14 23:37:43

+1

好的!完成!!!! = p – coffee 2011-06-15 12:51:25