Как генерировать список заголовков над некоторыми разделами?
-
25-09-2019 - |
Вопрос
Я хочу создать ListView
У этого есть некоторые разделители между некоторыми из записей, как видно в некоторых разделах свойств. Смотрите пример ниже. Я пытаюсь создать List
который состоит из некоторых текстовые просмотры За которым следует один из модных разделителей, объясняющих следующую часть списка, а затем снова некоторые виды текста. Как это может быть сделано? Я думал о создании разных взглядов, чтобы добавить в список? Это путь?
Решение
Я получил решение. Я не знаю, является ли это лучшим.
Я использую пользовательский адаптер, полученный из ArrayAdapter. Для списка, как описано в этом руководство. Отказ В классе адаптера я проверяю, если положение в методе GetView является обычной строкой, то я надул макет строки. Если это первая строка из новой группы, я надуваю планировку заголовка, это нормальный ряд, а также заголовок группы над ним.
Если вы не хотите смешивать заголовок в одну из ваших рядов. Рассмотрим следующее решение:
Вы можете перезаписать два метода getitemviewtype. а также getviewtypecount.Отказ Теперь у вас есть список, который может отображать разные строки. Вам необходимо проверить ожидаемый тип просмотра элемента в методе GetView и надувать разные макеты в зависимости от него.
Список будет обрабатывать утилизацию для вас таким образом, чтобы он вернул только правильные представления Recycle на ваш метод GetView, это означает, что если рециркуляция не является NULL, его можно использовать для отображения текущей ячейки.
Другие советы
Вы можете использовать мой SectionedAdapter
, если GPLV3 приемлемо (лицензирован таким образом из-за некоторого вступательного кода). Вы можете использовать мой MergeAdapter
, Если вам нужно что-то более гибкое и с менее ограничивающей лицензией (Apache 2).
Я думаю, что вы можете искать Android.Widget.expandablistView
http://developer.android.com/reference/android/widget/expandablistview.html.
Я также заинтересован в ответе на это. Должен быть более простым способом сделать это.
В поисках адаптера есть метод, адаптер. GTETITEMVEWTYPE (INT Posion).
ListView Определяет возвращаемое значение, item_view_type_header_or_footer, который указывает, является ли возвращенный элемент заголовка или нижний колонтитул.
Я не пробовал, но я предполагаю, что если вы создадите свой собственный адаптер и вернем элемент с видом, указывающим, что это заголовок или нижний колонтитул, что ListView будет отображаться соответствующим образом.