Почему StaggeredGridLayoutManager не корректно отображает элементы?
У меня идет загрузка объектов из интернета в базу данных, когда они загружены - они отображаются через LiveData. При отображении в onBindViewHolder в отдельном потоке идет загрузка картинки через Glide. Но так как изображение на момент отображения еще не загружено (скорее всего успела загрузиться из кэша только первая), то значение высоты берется без учета размера картинки. Как в таком случае быть? Если даже я знаю высоту и ширину картинки заранее, то мне не получается грамотно ими распорядится и выставить размер элемента заранее.
Ответы (1 шт):
Автор решения: Aleksandr Andrukhov
→ Ссылка
Я решил проблему добавив placeholder. Проблема по большому счету решилась.
GlideRequests glide = GlideApp.with(context);
RequestOptions requestOptions = new RequestOptions().placeholder(R.drawable.bg_load_image);
glide.asBitmap().diskCacheStrategy(cache_type).apply(requestOptions).load(imageRef).into(imageView);
bg_load_image.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#FFFFFF"/>
</shape>
</item>
</selector>
