0

我需要一個「固定行」,下面有一個滾動區域,裏面填充了1..N行動態創建的小部件/視圖。下面是我希望將工作(僞XML):我的建議佈局是否合理,或至少「可行」?

<LinearLayout llv (vertical)> 

    <TableLayout tlFixedRow > <-- child of llv, sibling of sv 
     <TableRow 
      <TextView "Blee"/> 
      <TextView "Bla"/> 
      <TextView "Bloo"/> 
      <TextView "Bligh"/> 
     <TableRow /> 
    </TableLayout> 

    <ScrollView sv > <-- child of llv, sibling of tlFixedRow 
     <TableLayout tlDynamicRowsParent > 
      <TableRow /> <-- 0..N TableRows, added dynamically 
     </ TableLayout > 

    </ ScrollView sv> 

</LinearLayout llv> 

所以佈局文件是:

<LinearLayout llv (vertical)> 

    <TableLayout tlFixedRow > <-- child of llv 
     <TableRow 
      <Checkbox/> 
      <Checkbox/> 
      <Checkbox/> 
      <TextView "Bla"/> 
     <TableRow /> 
    </TableLayout> 

    <ScrollView sv > <-- child of llv, sibling of tlFixedRow 
     <TableLayout tlDynamicRowsParent > 

     </ TableLayout > 

    </ ScrollView sv>  

</LinearLayout llv> 

...和TableRows(第一後,固定一個)被添加動態,由該僞碼錶示:

TableLayout tlDynamic = (TableLayout)findViewById(R.id.tlDynamicRowsParent); 
... 
for i = 0 until theCowsComeHome() do { 
Checkbox ckbx1 = new Checkbox(); 
Checkbox ckbx1 = new Checkbox(); 
Checkbox ckbx1 = new Checkbox(); 
TextView txtView = new txtView(); 
// ... (set some of the Checkbox and textView properties) 

TableRow tr = new TableRow(); 
tlDynamicRowsParent.addView(tr); 
tr.addView(ckbx1); 
tr.addView(ckbx2); 
tr.addView(ckbx3); 
tr.addView(txtView); 
} 

因此和實實在在,我的假設是:

的LinearLayout可以有0。 .N的孩子; ScrollView只能有一個孩子; TableLayout可以有0..N TableRows。

我的假設是否有效?或者我是否用離子形成了底池?

回答

1

是的,你所假設的一切都是正確的。你實際上已經完成了所有的編碼/ XML編碼,所以你可以試試它:)雖然,當你在固定表中已經用XML標記了相同的精確控件時,你將爲動態表格佈局添加3個複選框和一個textview行。我不確定這是否是有意的。

+0

oopsa-daisy(my bad);我會解決這個問題 - 它應該是四個TextView。 – 2012-03-13 17:04:40