TableRow使用不同的内容动态创建

时间:2011-06-14 01:31:02

标签: android textview tablelayout tablerow

我正在动态创建TableRows。这些TableRows有两种类型的内容。 有些人有4个意见。 有些人有2个观点。

问题是TableRows有两个,试图占用相同的空间,其布局有四个。 这种情况正在发生:

Img ThisTextViewHasThisSize

Img 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布局完全相互独立吗?

1 个答案:

答案 0 :(得分: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);
}