18

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

XML から静的に作成した別の TableLayout では、View を区切り記号として使用し、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);

ただし、すべての TableRows が収集された後に一度だけ追加されます。追加された tr ごとに 1 つの View を追加するスマートな方法は何でしょうか? それとも、他のものを一緒に使用する必要がありますか?

4

3 に答える 3

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 ピクセルの高さのビューを作成しています。これは私にとってはうまくいきます。

于 2011-02-23T14:33:54.933 に答える
15

これについてマドゥスタナンに感謝します。これを行う方法を探して、TextViewを水平線で単純に分離しました。プログラムでビューを作成していました (テーブル レイアウトを使用せずに)。上記の回答に基づいて私が思いついたのは次のとおりです。

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

単純!これが他の誰かに役立つことを願っています!

于 2012-02-15T15:05:27.483 に答える
1

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

于 2011-02-23T14:28:32.207 に答える