Как я могу добавить разделительные линии между моими TableRows, которые создаются программно? - PullRequest
18 голосов
/ 23 февраля 2011

У меня есть TableLayout, который создается программно в проекте Android. Я продолжаю добавлять TableRows до тех пор, пока из базы данных извлекается больше строк. Теперь я хочу добавить разделительные линии, например, границу между TableRows.

В моем другом TableLayout, который я создал статически из XML, я использовал View как разделитель, стиль с style.xml.

Я попытался добавить View к таблице, вот так:

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? Или я должен использовать что-то совсем другое?

Ответы [ 3 ]

38 голосов
/ 23 февраля 2011
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);

Здесь я создаю представление высотой в один пиксель с определенным цветом фона.Это работает для меня.

15 голосов
/ 15 февраля 2012

Спасибо Мадхусутанану за это.Я потратил некоторое время на поиски, как это сделать, чтобы просто разделить TextViews горизонтальной линией.Я создавал свое представление программно (без использования макета таблицы).Вот что я придумал, основываясь на ответе выше:

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

Просто!Надеюсь, это поможет кому-то еще!

1 голос
/ 23 февраля 2011

Вы можете использовать Listview, который будет проще и лучше, чем это.

...