I am doing a recyclerview with different viewtypes using the viewholder pattern. As one of my views I have a graphView and the load-time makes my recyclerview stutter when scrolling past it. I have tried initializing the graph in onCreateViewhodler and it gave a little but not enough :-(
Is there any way of preloading the view or only reloading under certain conditions?
onCreateViewholder
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
...
switch(viewType){
case 0:{
...
break;
}
case 1:{
View v = inflater.inflate(R.layout.today_graph, parent, false);
viewHolder = new GraphViewholder(v);
chart = new TodayChartView (mContext, v);
chart.createGraph(item);
break;
}
onBindViewholder
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 0: {
...
break;
}
case 1: {
GraphViewholder graphViewholder = (GraphViewholder) holder;
BindGraphViewHolder(graphViewholder, position, chart);
break;
}
BindViewholder
private void BindGraphViewHolder(GraphViewholder holder, int position, TodayChartView chart) {
if(holder.itemView==null){
((ViewGroup)holder.itemView).addView(chart.getView());
}
}
Viewholder
public static class GraphViewholder extends RecyclerView.ViewHolder {
public GraphViewholder(View view) {
super(view);
}
}