Я пытался получить удаленные изображения, которые у меня есть API, и отобразить их в Masonry Grid (Pinterest Style).
Сначала я использовал простой GridView, он работал отлично, но без стиля масонства. Затем, после различных исследований, я наконец использовал:
Fresco
для извлечения Image & Cache
RecyclerView
с StaggeredGridLayoutManager
для отображения изображений из API.
- Пользовательский макет с
SimpleDraweeView
для отображения каждого элемента.
- Мой собственный адаптер "MasonryAdapter" для привязки данных к представлению.
В пользовательском макете я устанавливаю SimpleDraweeView с помощью:
layout_with = match_parent
layout_height = wrap_content
Затем в моем адаптере я установил правильное соотношение сторон для каждого изображения, так как в моем API я могу легко получить ширину и высоту изображений.
holder.contentImage.aspectRatio = image.width.toFloat() / image.height.toFloat()
Хотя в первый момент все выглядело приемлемо, но после прокрутки я обнаружил, что все разрывается. Я очень плохо знаком с Android
& Kotlin
, пожалуйста, спросите, нужно ли вам что-нибудь. Здесь я прилагаю GIF к происходящему.
Если изображение удалено, проверьте его здесь: https://ibb.co/dy0EjH