Почему Glide мигает элементом ImageView, когда notifydatasetchanged
Я использую скользить 3.7.0 С RecyclerView
. Вид элемента всегда мигает при обновлении (вызов notifyDataSetChanged
).
вот мой код:
Glide
.with(context)
.load(filepath)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.dontAnimate()
.into(imageview);
когда я не использую кэш,ImageView
имеет нулевое растровое изображение, когда notifyDataSetChanged
вызывается метод и Glide не закончил загрузку растрового изображения.
если я использую код ниже:
Glide
.with(context)
.load(filepath)
.dontAnimate()
.into(imageview);
выберите пункт ImageView
не мигать (через кэш).
Я хочу обновить элемент посмотреть динамически, поэтому я отключаю кэш glide.
есть ли какие-либо решения для решения этой ошибки мигания?
большое спасибо!
4 ответов
после моих многих попыток, просто используйте SimpleTarget решил мою проблему спасибо!
Glide
.with(context)
.load(filepath)
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.dontAnimate()
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap arg0, GlideAnimation<? super Bitmap> arg1) {
// TODO Auto-generated method stub
holder.mItemView.setImageBitmap(arg0);
}
});
в моем случае я решил проблему, используя определенные размеры на моем imageView
.
<ImageView
android:id="@+id/poster_imageview"
android:layout_width="130dp"
android:layout_height="183dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/placeholder" />
обновление Glide от версии 3 до 4 и setSupportsChangeAnimations(false)
на RecyclerView решена проблема для меня
RecyclerView.ItemAnimator animator = recyclerView.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}