Как реализовать смещенные представления в порядке чтения? - PullRequest
0 голосов
/ 31 октября 2018

Вот что я хочу реализовать:

Staggered Views

Я пытаюсь отобразить определения, которые я получаю из Интернета (сейчас они приходят из фиктивных данных, но это ни здесь, ни там).

Моей первой мыслью было использование горизонтального StaggeredGridView. Есть две проблемы с этим. Представления расположены не в правильном порядке, и счетчик диапазонов не устанавливается динамически. Кроме того, я обнаружил, что вызов setSpanCount () в onLayoutChildren () вызывает ошибку во время выполнения.

Staggered View Attempt

Конечно, я мог бы просто использовать LinearLayout и отказаться от попытки перезапустить представления. Это будет работать в большинстве случаев, но если пользователь получит определение длины, это приведет к неэффективному использованию памяти.

Имея это в виду, я решил подкласс StaggeredGridLayoutManager. И здесь мне нужна твоя помощь. Вот ресурсы, которые я нашел в моем собственном поиске:

Реализация Google LinearLayoutManager

Руководство по реализации пользовательского LayoutManager

Еще одно руководство по реализации пользовательского LayoutManager

Обзор нескольких принципов, которым необходимо следовать при реализации пользовательского LayoutManager

Я прошел через каждый из них, но я не могу мысленно выделить, какие части существуют для их конкретных сценариев использования и какие части являются общими для всех пользовательских реализаций. Если бы кто-то мог так любезно указать мне направление ресурса или объяснить, какие все методы я должен вызывать, в каком порядке и с какой целью, я был бы безмерно благодарен. Спасибо!

1 Ответ

0 голосов
/ 04 ноября 2018

Ваш первый снимок экрана выглядит как идеальный случай для библиотеки Google FlexboxLayout . Вы можете использовать FlexboxLayoutManager с RecyclerView, чтобы получить именно то, что вы показали.

...