Ich erstellt eine RecyclerView mit zwei Spalten mit StaggeredGridLayoutManager, enthält jedes Element 2 Bilder und Text, die Größe für das erste Bild kann (284 * 572, 840 * 401 oder 283 * 232) die zweite 35 * 35 und ein Text, die Liste sieht gut aus, aber das Problem ist, dass, wenn der Benutzer nach unten scrollen das Scrollen nicht glatt und nicht kontinuierlich ist, nehmen die Bilder aus dem lokalen Speicher (Zeichen), was können wir tun Genehmigen der Scroll-Erfahrung.Scrollen ist nicht glatt in Android RecyclerView mit StaggeredGridLayout
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);
}
}
}
Einstellen der RecyclerView in einem Fragment
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);
Fantasie ein Objekt Informationen über Fantasy-Film enthält, von dort aus sind wir bekommen die ID der Bilder und den Text – user1684140