以编程方式为TableRow数组设置边框

6

我知道这与这里的问题相同,但它还没有得到答案,所以我在这里尝试,因为我也需要它 :)
我有一个数组:(我已经缩短了数组/代码,只给出SO)

ScrollView sv = new ScrollView(this);
TableLayout ll=new TableLayout(this);
HorizontalScrollView hsv = new HorizontalScrollView(this);
TableRow tbrow=new TableRow(this);
 for(int i=0;i<mConnector.idArray.size();i++) {
         tbrow=new TableRow(this);
         tbrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
         tbrow.setBackgroundColor(Color.rgb(51, 51, 51));

         ll.addView(tbrow);
 }

hsv.addView(ll);
sv.addView(hsv);
setContentView(sv);

把数组里面的信息省略掉,我认为这并不重要。
但是如何在每一行中添加边框(最好是水平和垂直的)呢?我希望下面的代码可以解决:

tbrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
tbrow.setBackgroundColor(Color.rgb(51, 51, 51));

但它将整个表格变成灰色。希望我的意思已经表达清楚,也希望有一个解决方案。
1个回答

25

但是如何在每一行中添加边框(最好是水平和垂直的)?我希望这是解决方案:

如果您只想为TableRows添加边框,您可以将以下可绘制对象用作TableRow的背景:

R.drawable.row_border

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#ffffff" />
    <stroke android:width="3dp" android:color="#99cc00" />

</shape>

然后:

tbrow.setBackgroundResource(R.drawable.row_borders);

如果您想要获得一个固定宽度的边框,您可以使用一个layer-list代替,在其中包含三个版本,一个用于顶部行,一个用于中间行,一个用于底部行。


1
哦,从来没有用过这种方法。一个新的学习点:)。谢谢!! - Bigflow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接