我有一个在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的智能方法是什么?或者我应该一起使用其他东西吗?
答案 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,这比这样做更容易也更好。