2014-01-30 3 views
0

enter image description hereКак добавить блоки linearLayouts и есть ли лучший способ?

Это основная идея того, что я пытаюсь сделать. Я хотел бы спросить вас, что является лучшим способом сделать такой дизайн. проблема в том, что эти серые/черные блоки могут не отображаться (пользователь выберет, что должно появиться). Поэтому я хотел бы узнать, нужно ли делать эти 3 текстовых вида внутри linearLayout программно? Нужно ли создавать какой-то шаблон, который мне нужно было бы отредактировать, установив новые тексты для textViews и добавив их в какой-то макет?

+1

Я бы создал их с помощью блоков, используя 'ListView' и в' getView() 'определить, нужно ли показывать блоки или нет и переключать' Видимость' – codeMagic

+0

@codeMagic awesome! Не знал, что вы можете это сделать. Попытаемся понять это сейчас. Может быть, вы можете порекомендовать какой-нибудь учебник для этого? – user3178137

+0

[раздел 3 здесь] (https://www.google.com/url?q=http://www.vogella.com/tutorials/AndroidListView/article.html&sa=U&ei=44bqUrKRLs3O2QWE6IDoDw&ved=0CAYQFjAA&client=internal-uds-cse&usg = AFQjCNG-UUJRD1iS4Kke7r8sP4PYrS07Jg) должен быть хорошим для пользовательского 'Adapter' на' ListView' – codeMagic

ответ

2

Другим вариантом является просто наличие LinearLayout и xml для ввода строки. Тогда вы можете сделать:

LinearLayout layout = (LinearLayout) this.findViewById(R.id.your_layout_id); 
List<Blocks> userBlocks = getMyUserBlocks(); 
for(Block b : userBlocks) { 
    View blockView = LayoutInflater.from(getBaseContext()) 
     .inflate(R.layout.your_row_layout, layout, false); 
    TextView someData = (TextView) blockView.findViewById(R.id.your_text_view_id); 
    someData.setText(b.someAttribute.toString()); 
    layout.addView(blockView); 
} 

Вам понадобится отдельный макет xml для строки блока.

0

Вы можете использовать ListView с большими разделителями. Ваши темные серые блоки представляют собой представления строк, и вы можете просто добавить их в набор данных и обновить адаптер для ListView. Для разделителей см. setDivider() и setDividerHeight().

Смежные вопросы