如何在以编程方式创建的TableRows之间添加分隔线?

时间:2011-02-23 14:21:25

标签: android tablelayout separator

我有一个在Android项目中以编程方式创建的TableLayout。只要从数据库中获取更多行,我就会不断添加TableRows。现在我想在TableRows之间添加分隔线,如边框。

在我从XML静态创建的另一个TableLayout中,我使用View作为分隔符,使用style.xml样式。

我尝试将一个View添加到tablelayout中,如下所示:

View v=new View(this);
         v.setLayoutParams(new LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
         v.setBackgroundResource(R.drawable.rowseparator_shape);
             tr.addView(mTvDate);
             tr.addView(mTvResult);

             tl.addView(tr); 
             tl.addView(v);

但它只在所有收集的TableRows之后添加一次。为每个tr添加一个View的智能方法是什么?或者我应该一起使用其他东西吗?

3 个答案:

答案 0 :(得分:38)

View v = new View(this);
v.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
v.setBackgroundColor(Color.rgb(51, 51, 51));
tr.addView(mTvDate);
tr.addView(mTvResult);

tl.addView(tr); 
tl.addView(v);

这里我正在创建一个具有特定背景颜色的像素高的视图。这对我有用。

答案 1 :(得分:15)

感谢Madhusuthanan。我花了一些时间搜索如何做到这一点,简单地将TextViews与水平线分开。我以编程方式创建视图(不使用表格布局)。以下是我根据上述答案提出的建议:

View line = new View(this);
line.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 1));
line.setBackgroundColor(Color.rgb(51, 51, 51));
layout.addView(line);

简单!希望这有助于其他人!

答案 2 :(得分:1)

您可以使用Listview,这比这样做更容易也更好。