0

我正在TableRows动态创建。这些内容有两种TableRows。有些有 4 个视图。有些有 2 个视图。

问题是,TableRows有两个时,尽量占据与有四个的布局相同的空间。这正在发生:

Img 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 布局彼此完全独立?

4

1 回答 1

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);
}
于 2011-06-14T05:02:14.450 回答