Как генерировать ListView с заголовками выше некоторых разделов?

Я хочу генерировать a ListView это имеет некоторые делители между некоторыми записями, как он видны в некоторых разделах свойства. Посмотрите пример ниже. Я пытаюсь генерировать a List это состоит из некоторого textviews, сопровождаемого одним из необычных делителей, объясняющих следующую часть списка и с другой стороны некоторых текстовых представлений. Как это может быть сделано? Я думал о создании различных взглядов добавлять к списку? Действительно ли это - способ пойти?

6
задан N J 6 July 2015 в 09:02
поделиться

4 ответа

У меня есть решение. Не знаю, лучший ли он.

Я использую специальный адаптер, полученный из ArrayAdapter для списка, как описано в этом учебном пособии . В классе адаптера я проверяю, является ли позиция в методе getView нормальной строкой, затем увеличиваю макет строки. Если это первая строка из новой группы, я увеличиваю макет заголовка, который представляет собой обычную строку плюс заголовок группы над ней.

Если вы не хотите смешивать заголовок с одной из ваших строк. Рассмотрим следующее решение:

Вы можете перезаписать два метода getItemViewType и getViewTypeCount . Теперь у вас есть список, который может отображать разные строки. Вам нужно проверить ожидаемый тип представления для элемента в методе getView и раздуть различные макеты в зависимости от этого.

Список будет обрабатывать переработку для вас таким образом, что он будет возвращать только правильные представления повторного цикла в ваш метод getView, это означает, что если recycleView не равен нулю, его можно использовать для отображения вашей текущей ячейки.

10
ответ дан 8 December 2019 в 17:20
поделиться

Вы можете использовать мой SectionedAdapter, если GPLv3 приемлема (лицензированный таким образом из-за некоторых исходных текстов). Вы можете использовать мой MergeAdapter, если вам нужно что-то более гибкое и с менее ограничивающей лицензией (Apache 2).

3
ответ дан 8 December 2019 в 17:20
поделиться

Думаю, вы ищете android.widget.ExpandableListView

http://developer.android. com / reference / android / widget / ExpandableListView.html

1
ответ дан 8 December 2019 в 17:20
поделиться

Меня тоже интересует ответ на этот вопрос. Должен быть более простой способ сделать это.

В адаптере есть метод Adapter.getItemViewType (int position).

ListView определяет возвращаемое значение ITEM_VIEW_TYPE_HEADER_OR_FOOTER, которое указывает, является ли возвращаемый элемент верхним или нижним колонтитулом.

Я не пробовал, но предполагаю, что если вы создадите свой собственный адаптер и вернете элемент с типом, указывающим, что это верхний или нижний колонтитул, ListView отобразит его соответствующим образом.

0
ответ дан 8 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: