2

我的活动中有以下内容,成功显示了 3 列数据(最多有 10 行,因此是 for 循环):

for (int i=0;i<10;i++)
        {
            TableRow tr = new TableRow(this);
            TextView tv0 = new TextView(this);
            TextView tv1 = new TextView(this);
            TextView tv2 = new TextView(this);
            TableRow.LayoutParams trlp = new TableRow.LayoutParams();
            trlp.span = 3;
            trlp.weight = 1;
            tr.setLayoutParams(trlp);
            tv0.setText("" + debtName[i]);
            tv1.setText("" + debtAmount[i]);
            tv2.setText("" + debtPayment[i]);
            tr.addView(tv0);
            tr.addView(tv1);
            tr.addView(tv2);
            tl.addView(tr);
        }

我希望它们被平均加权,因为有一个标题行是硬编码到布局中的。“trlp.weight = 1;” 没有从它不存在的时候改变它。

我正在寻找的是一种让 tv0、tv1、tv2 TextViews 均匀分布(水平)的方法。

也供参考,我在 API 12 上运行。

4

1 回答 1

3

您必须将重量设置在应该缩放的孩子身上。

1 表示默认 100% 缩放,如果您希望 3 个 textvie 均匀分布,则每个设置 0.33 作为权重。

TableRow.layoutParams trlp = new LayoutParams(0, LayoutParams.MATCH_PARENT, 0.33f);
tv0.setLayoutParams(trlp);
...
tr.add(tv0);
...
于 2013-11-03T22:58:10.410 回答