我提议的布局是否合情合理,或者至少“可行”?

时间:2012-03-13 13:56:01

标签: android android-layout android-view android-scrollview android-tablelayout

我需要一个“固定行”,下面有一个滚动区域,里面装满了1行动态创建的小部件/视图。这是我希望工作的(pseudo-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 个答案:

答案 0 :(得分:1)

是的,你认为的一切都是正确的。你几乎已经完成了所有编码/ XML,所以你可以尝试它:)虽然,当你在固定表格中已经用XML标记相同的确切控件时,你正在为动态表格布局添加3个复选框和一个textview行。我不确定这是否是故意的。