web-dev-qa-db-ja.com

プログラムで作成されたTableRowの間に区切り線を追加するにはどうすればよいですか?

Androidプロジェクトでプログラムで作成されたTableLayoutがあります。データベースからフェッチされた行が多い限り、TableRowsを追加し続けます。次に、境界線などの区切り行を追加します。 TableRows間。

XMLから静的に作成した他のTableLayoutでは、ビューをセパレーターとして使用し、style.xmlでスタイルを設定しました。

次のように、テーブルレイアウトにビューを追加してみました。

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);

ただし、収集されたすべてのTableRowの後に1回だけ追加されます。追加されたtrごとに1つのビューを追加するスマートな方法は何でしょうか?それとも私は一緒に何か他のものを使うべきですか?

18
kakka47
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ピクセルのビューを作成しています。これは私のために働きます。

これについてMadhusuthananに感謝します。 TextViewを水平線で単純に区切る方法を探していました。プログラムでビューを作成していました(テーブルレイアウトを使用せずに)。上記の答えに基づいて私が思いついたものは次のとおりです。

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

シンプル!これが他の誰かに役立つことを願っています!

15
Chasden

これを行うよりも簡単で優れたリストビューを使用できます。

1