0

В телеграмме, в настройках, на экране много разных item-ов. Я думаю это RecyclerView, который рисует item то по одной разметке, то по другой. Есть небольшое видение как это реализовать - но не хочется велосипедить. Может у кого есть примеры реализаций подобного рода вещей?

В краце: нужно создать экран с разными item-ами, которые возможно будут сгрупированы по каким-то заголовкам, между группами хотелось бы доавить отступ, сами группы буду отличаться друг от друга видом item-ов, например в одной item-ы - это просто textView, в другой - TextView вместе со switcher и т.д.

Пример того, что интересно реализовать: введите сюда описание изображения

Evgeny
  • 187
  • 1
  • 10
  • видимо это вообще не RecyclerView, а, например, NavigationView или вовсе кастомный View. Для ресайклера слишком много заморочек в реализации – pavlofff Jun 12 '19 at 15:12

1 Answers1

0

Этот функционал реализован в RecyclerView. Переопредели метод getItemViewType, в котором в зависимости от содержимого i-го элемента возвращается условный номер типа. Затем в onCreateViewHolder исходя из типа пришедшего в параметрах создаете нужный тип ViewHolder'а

  • Об этом я в крусе, но ты описал лишь то, как сделать разые виды item-ов, а мне надо еще и групировки, отступы, заголовки... Вся эта кастомизаия не так проста, потмоу я и просил пример. – Evgeny Jun 11 '19 at 09:02
  • Группировка есть ни что иное, как создание еще одного вида объектов в RecyclerView - разделителей) В указанном вами примере, если он сделан именно через recyclerView, есть 6 типов элементов. 1) заголовок, 2) "двухстрочный" контент 3) серый пустой разделитель 4) элемент настроек 5) футер – Спицко Дмитрий Jun 11 '19 at 09:27
  • И как в таком случае должен быть заполнен список, переданный в адаптер? – Evgeny Jun 12 '19 at 12:39
  • Ну, например, делаем интерфейс AdapterElemet, имеющий 2 метода: int getType() и void fillHolder(T holder). Первый возващает номер типа, второй - заполняет переданный холдер своими данными. В адаптер передаете список таких элементов, в который включены разделители и заголовки – Спицко Дмитрий Jun 12 '19 at 14:05