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