使用TableLayout.LayoutParams为3个TextViews分配权重

时间:2013-11-03 20:20:42

标签: android textview tablelayout android-tablelayout layoutparams

我的活动中有以下内容成功显示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。

1 个答案:

答案 0 :(得分:3)

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

1表示默认情况下100%缩放,如果您希望3个textvies均匀分布设置0.33作为每个的重量。

TableRow.layoutParams trlp = new LayoutParams(0, LayoutParams.MATCH_PARENT, 0.33f);
tv0.setLayoutParams(trlp);
...
tr.add(tv0);
...