Last active
December 8, 2017 13:30
-
-
Save ankuryadav7/0b14789f5ba2bd39f1be349ed306af20 to your computer and use it in GitHub Desktop.
Adapter for implement heterogenous layouts in recyclerview.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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