Добрый день. Стоит задача сделать экран, в котором будет несколько Recycler View. В каждом RecyclerView будет несколько Card View. Как это правильно реализовать? Для каждого Recycler View создавать контейнер? Вот примерный рисунок, как должно выглядеть:
эскиз 
Asked
Active
Viewed 813 times
2
ivanovd422
- 1,311
2 Answers
5
На сколько я понимаю у вас 3 списка разных типов элементов и заголовки между ними. Такая структура легко организуется на одном RecyclerView. Вам просто нужно в адаптере возвращать суммарное количество элементов и заголовков, переопределить метод getItemViewType, в котором возвращать тип элемента по позиции (у вас это видимо: заголовок, список1, список2 или список3). Под каждый тип элемента сделать отдельный ViewHolder и в методах onBindViewHolder и onCreateViewHolder создавать разные лайауты и по разному их наполнять в зависимости от их типа. Пример сходу смог найти только такой.
xkor
- 5,011
-
Да, это решение выглядит более красивым и логичным, чем моё предположение. Только у меня 3 заголовка и 3 списка, но это не меняет сути. Благодарю за совет. – ivanovd422 May 16 '16 at 09:15
4
- Возьмите
LinearLayoutc вертикальной ориентацией и высотой в экран. - Поместите в него
TextViewиRecyclerViewв нужном кол-ве. - Добейтесь нужного размещения последних на экране устанавливая им высоту через вес. Если будете устанавливать высоту в
dpилиWRAP_CONTENT, то на некоторых экранах просто всё не поместится. С другой стороны, при использовании веса на маленьких экранах всё будет очень мелко. Так что я бы на вашем месте так бы не делал, а выводил бы списке в отдельном фрагменте/диалоге вместо помещения их всех на один экран.
ЮрийСПб
- 69,813
-
я вместо LinearLayout использую RelativeLayout, мне кажется, так легче и правильнее располагать элементы. А как быть с LayoutManager и Адаптерами для RecyclerView? Для каждого создавать новый адаптер ? – ivanovd422 May 16 '16 at 08:46
-
Может есть смысл использовать ScrollView, как контейнер для всех элементов? – ivanovd422 May 16 '16 at 08:52
-
@Denis422, Relative тут точно не нужен, плюс он прожорливее по ресурсам. Да, менеджеры и адаптеры должн быть свои для каждого списка. ScrollView использовать нельзя - будет конфликт и его без АЦЦЦКИХ костылей не обойти. Если очень надо - то сделайте лучше один список с разным типом элементов. То, что вы хотите сделать либо неправильно, либо некрасиво, либо невозможно без костылей. – ЮрийСПб May 16 '16 at 08:55
-
ScrollView уже попробовал и разочаровался) Я добавил еще одну картинку, чтобы было понятнее что я хочу. Всё таки один список с разными холдерами наверно лучше будет.. – ivanovd422 May 16 '16 at 09:04
-
Spiner, при вашей компоновке в каждом списке будет видно в лучшем случае полтора элемента, если речь идет о телефонах. – pavlofff May 16 '16 at 07:21