【问题标题】:Programmatically set border for TableRow array以编程方式为 TableRow 数组设置边框
【发布时间】:2012-11-22 11:03:15
【问题描述】:

我知道这和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));

但它只是把我的整个桌子染成灰色。

希望我足够清楚,并希望他们是一个解决方案。

【问题讨论】:

    标签: android android-view tablerow android-tablelayout


    【解决方案1】:

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

    如果您只想在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,它有三个版本,一个用于顶行,一个用于中间行,一个用于底行。

    【讨论】:

    • 哦,从来没有用过这样的方法。一个新的学习点:)。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多