Skip to content

Instantly share code, notes, and snippets.

@ankuryadav7
Last active December 8, 2017 13:30
Show Gist options
  • Save ankuryadav7/0b14789f5ba2bd39f1be349ed306af20 to your computer and use it in GitHub Desktop.
Save ankuryadav7/0b14789f5ba2bd39f1be349ed306af20 to your computer and use it in GitHub Desktop.
Adapter for implement heterogenous layouts in recyclerview.
package com.example;
import android.app.Activity;
import android.graphics.Typeface;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by Ankur on 12/6/2017.
*/
public class HeterogenousAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
ArrayList<DemoBean> demoList;
Activity activity;
private final int HEADER_ITEM = 0;
private final int CHILD_ITEM = 1;
public CurrentBuzzAdapter(Activity activity, ArrayList<DemoBean> demoList) {
this.activity=activity;
this.demoList=demoList;
}
public int getViewTypeCount() {
return demoList.size();
}
@Override
public int getItemViewType(int position) {
return demoList.get(position).getItemType();
}
View view;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == HEADER_ITEM) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.buzz_item, parent, false);
HeaderHolder headerHolder = new HeaderHolder(activity,view);
return headerHolder;
}
else
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cyber_item, parent, false);
ChildHolder childHolder = new ChildHolder(activity,view);
return childHolder;
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
Log.w("position bind",position+"");
if (holder instanceof HeaderHolder) {
// ((HeaderHolder) holder).demo_text.setText("Demo");
}else {
// ((HeaderHolder) holder).demo_text.setText("Demo");
}
}
@Override
public int getItemCount() {
return demoList.size();
}
public class HeaderHolder extends RecyclerView.ViewHolder {
TextView demo_text;
public HeaderHolder(Activity activity ,View itemView) {
super(itemView);
demo_text=(TextView)itemView.findViewById(R.id.demo_text);
}
}
public class ChildHolder extends RecyclerView.ViewHolder {
TextView demo_text;
public ChildHolder(Activity activity ,View itemView) {
super(itemView);
demo_text=(TextView)itemView.findViewById(R.id.demo_text);
}
}
}
//set adapter from main class
ArrayList<DemoBean> demoList=new ArrayList<DemoBean>();
for (int i=0;i<10;i++){
DemoBean demoBean=new DemoBean();
if(i==0){
demoBean.setItemType(0)
demoList.add(demoBean);
}
else if(i==1){
demoBean.setItemType(1)
demoList.add(demoBean);
}else{
demoBean.setItemType(1)
demoList.add(demoBean);
}
}
HeterogenousAdapter demoAdapter=new HeterogenousAdapter(activity,demoList);
demoRecyclerView.setAdapter(demoAdapter);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment