Как реализовать представление переработчика в Kotlin, которое может обрабатывать ячейки разных размеров? - PullRequest
1 голос
/ 22 февраля 2020

Я быстрый разработчик, и мне удалось очень легко создать этот макет с помощью UICollectionView. Тем не менее, я изо всех сил пытаюсь сделать то же самое в Kotlin. Я пытался использовать Recycler View для этого, но enter image description here не работает. Любые советы о том, как я могу это сделать, будут высоко оценены.

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Я могу помочь вам с несколькими предложениями относительно того, как я буду делать этот макет. Проверьте, поможет ли это:

Во-первых, следуйте этому посту для реализации нескольких видов типов в вашем обзоре переработчика, переопределив метод getItemViewType() в вашем адаптере просмотра переработчика. Вы можете установить тип представления элемента на основе его положения в списке данных или значения в вашем источнике данных et c. На основе этого возвращенного типа просмотра вы можете установить, как должен выглядеть ваш видоискатель, в методе onCreateViewHolder() адаптера и функциональности в методе onBindViewHolder().

Далее вашему представлению переработчика необходимо будет использовать GridLayoutManager с вертикальным ориентация и 2 столбца.

С помощью этих 2-х шагов вы можете иметь несколько видов в разных столбцах, как вам нужно, НО для того, чтобы видоискатель занимал всю ширину, как 2-й ряд в вашем образце изображения, который вам нужно будет сделать использование setSpanSizeLookup() метода вашего менеджера компоновки сетки. Вы можете использовать этот пост здесь для справки.

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

Упомянутые мной ссылки в основном относятся к java, но преобразование их в kotlin должно быть довольно простым. Посмотрите и дайте нам знать, если это поможет.

0 голосов
/ 22 февраля 2020

Используйте StaggeredGridLayoutManager в качестве диспетчера макетов RecyclerView. Например:

recycler.setLayoutManager(StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...