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。

我的假设是有效的,还是我用离子做了一个贮槽?

4

1 回答 1

1

是的,你假设的一切都是正确的。您实际上已将所有代码都编码/ XML 完成,因此您可以尝试一下 :) 虽然,当您在固定表中的 XML 中标记了相同的确切控件时,您正在向动态表布局添加 3 个复选框和一个文本视图排。我不确定这是否是故意的。

于 2012-03-13T14:14:04.213 回答