2016-09-13 4 views
0

У меня возникли проблемы с производительностью моей recyclerview и я прочитал, что onBindViewHolder часть RecyclerView.Adapter может быть причиной для этого. Основная проблема, которую я испытываю, - это просто медленная прокрутка, и иногда она становится невосприимчивой. Это мой onBindViewHolderAndroid RecyclerVew адаптер низкая производительность

@Override 
public void onBindViewHolder(ArtistViewHolder holder, int position) { 
    final Artist artist = artists.get(position); 

    holder.getBinding().artistImage.setImageBitmap(null); 
    try { 
     holder.setImage(artist, (int) DimensionUtil.convertDpToPixel(context, 120), (int) DimensionUtil.convertDpToPixel(context, 120)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    if (position == artists.size() - 1) { 

     endOfListListener.EndOfListReached(); 
    } 
    holder.getBinding().setArtistClickListener(listener); 
    holder.getBinding().setArtist(artist); 
    holder.getBinding().setPosition(position); 
    holder.getBinding().executePendingBindings(); 

} 

есть что-то там, что можно было бы перенести в другое место, чтобы улучшить производительность скроллинга? Я знаю, что каждый элемент в onBindViewHolder часто доступен, как прокрутка списка.

ответ

2

Это потому, что вы загружаете изображения (большие изображения) на recyclerview. И onbindviewholder будет прикреплять изображения eveytime, когда u прокручивает recyclerview.

+0

О, хорошо, знаете ли вы, что лучше загружать эти изображения, чем OnBindViewHolder? – user1591668

+1

Чтобы предотвратить одновременное прикрепление изображений к объекту onbindviewholder. Просто установите свойство 1 для recyclerview. myRecyclerView.setRecycleable (ложь); – LearnPainLess

+0

Oh Ok Спасибо, я сделаю это сейчас – user1591668