0
kullanarak

StaggeredGridLayoutManager kullanarak iki sütunlu bir RecyclerView oluşturdum, her öğe 2 resim ve metin içeriyor, ilk resmin boyutu (284 * 572, 840 * 401 veya 283 * 232)) ikinci 35 * 35 ve bir metin, liste harika görünüyor ama sorun kaydırma aşağı kaydırma kullanıcı aşağı kaydırma ve sürekli değil, görüntüleri yerel depolama (çekilebilir) alıyor, ne için yapabiliriz kaydırma deneyimini onaylama. Performansı artırmak için resimleri önbelleğe bir FragmentAndroid'de kaydırma kaydırma düzgün değil StaggeredGridLayout

RecyclerView myRecyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view); 

StaggeredGridLayoutManager setLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); 
FantasyTabAdapter fantasyTabAdapter = new FantasyTabAdapter(getActivity(),fantasies); 

myRecyclerView.setLayoutManager(setLayoutManager); 
myRecyclerView.setAdapter(fantasyTabAdapter); 
+0

Fantezi fantezi film hakkında bilgi içeren bir nesnedir kullanabilirsiniz

this.fantasyImage.setImageResource(fantasy.getFantasyHeaderImageID()); 

: nt önbelleğe alma stratejisi böylece ihtiyacınız olan tüm bunlardan birini almak ve yerine örneğin kullanabilirsiniz olduğu görüntülerin kimliği ve – user1684140

cevap

2

yılında RecyclerView Ayar FantasyTabAdpter.java

public class FantasyTabAdapter extends RecyclerView.Adapter<FantasyTabAdapter.MyViewHolder> { 
    private LayoutInflater inflater; 
    private ArrayList<Fantasy> fantasies; 

    public FantasyTabAdapter(Context context, ArrayList<Fantasy> fantasies) { 
     inflater = LayoutInflater.from(context); 
     this.fantasies = fantasies; 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = inflater.inflate(R.layout.fantasy_tab_item, parent, false); 
     MyViewHolder holder = new MyViewHolder(view); 
     return holder; 
    } 

    @Override 
    public void onBindViewHolder(final MyViewHolder holder, int position) { 
     final Fantasy fantasy = fantasies.get(position); 
     holder.setData(fantasy, position); 
    } 

    @Override 
    public int getItemCount() { 
     return fantasies.size(); 
    } 

    class MyViewHolder extends RecyclerView.ViewHolder{ 
     ImageView fantasyImage; 
     TextView fantasyTitle; 
     ImageView fantasyStatus; 

     public MyViewHolder(View itemView) { 
      super(itemView); 
      fantasyImage = (ImageView) itemView.findViewById(R.id.fantasy_tab_image); 
      fantasyTitle = (TextView) itemView.findViewById(R.id.fantasy_tab_title); 
      fantasyStatus = (ImageView) itemView.findViewById(R.id.fantasy_tab_status); 
     } 

     public void setData(Fantasy fantasy, int position) { 
      this.fantasyTitle.setText(fantasy.getFantasyHeader()); 
      this.fantasyImage.setImageResource(fantasy.getFantasyHeaderImageID()); 
      this.fantasyStatus.setImageDrawable(fantasy.statusImagePlsgod); 
     } 
    } 
} 

. İlk bu iki videoları izleyin:

Caching UI data

The Magic of LRU Cache

sonra nedenini ve bundan böyle görüntü kütüphaneleri kullanabilirsiniz bunu çözmek için nasıl fikir anlayış sonra:

Glide

picasso

o uygulayıcılar biz oradan sen

Picasso.with(context).load(fantasy.getFantasyHeaderImageID()).into(this.fantasyImage); 
+1

Glide çok daha iyi oluyor –

İlgili konular