Реализация многоколоночного ListView с независимыми высотами строк

Я хотел бы создать список около 200 ImageViews (случайных высот) со следующим макетом вколлаж' мода:

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

Я попытался реализовать этот макет с:

Три ListView с синхронизированной прокруткой = медленноЕдиный ListView с каждой строкой, содержащей три изображения = Не допускается разная высотаGridView = не допускается разная высотаGridLayout = Трудно реализовать разные высоты программно. Из-за отсутствия адаптера распространены ошибки OutOfMemoryErrorsFlowLayout = Из-за отсутствия адаптера, OutOfMemoryErrors являются общимиScrollView с тремя вертикальными LinearLayouts = лучшее решение на данный момент, но ошибки OutOfMemoryEr распространены

В итоге я использовал три LinearLayouts в ScrollView, но это далеко не оптимально. Я бы предпочел использовать что-то с адаптером.

РЕДАКТИРОВАТЬ Я смотрел на StaggeredGridView, как в ответе ниже, но я нахожу его довольно глючным. Есть ли реализации этого, которые более стабильны?

Ответы на вопрос(6)

Ваш ответ на вопрос