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

时间:2012-11-22 11:03:16

标签: android android-view tablerow android-tablelayout

我知道它与here是同一个问题 但它还没有得到答案,所以我在这里试试,因为我也需要它:) 我有一个数组:(我缩短了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 个答案:

答案 0 :(得分:18)

  

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

如果您只想在TableRows周围设置边框,只需使用下面的drawable作为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,一个用于顶行,一个用于中间的行,一个用于底行。