在正常实现RecyclerView的Adapter时候,是这样构建的:
pulic class MyRecyclerView extend RecyclerView.Adapter<MyRecyclerView.VH>{
public MyRecyclerView(){}
@Override
public VH onCreatedViewHolder(ViewGroup viewG, int type){
View _rootView = LayoutInflater.inflate(R.layout.xx, viewG, false);
return _rootView;
}
@Override
public void onBindViewHolder(VH view, int position){}
@Override
public int getItemCount(){}
public class VH extend RecyclerView.ViewHolder{
public VH(View v){}
}
}
但是这样每个Item都是同一个布局,加入我们想多加几个布局怎样办?
可以在该类中添加getItemViewType(){}方法
添加后的类为
pulic class MyRecyclerView extend RecyclerView.Adapter<MyRecyclerView.VH>{
public MyRecyclerView(){}
@Override
public VH onCreatedViewHolder(ViewGroup viewG, int type){
if(type == VIEW_ONE){
View _rootView = LayoutInflater.inflate(R.layout.xx1, viewG, false);
}else{
View _rootView = LayoutInflater.inflate(R.layout.xx2, viewG, false);
}
return _rootView;
}
@Override
public void onBindViewHolder(VH view, int position){}
@Override
public int getItemCount(){}
@Override
public int getItemViewType(int position){ return position % 5 == 0 ? VIEW_ONE : VIEW_TWO }
public class VH extend RecyclerView.ViewHolder{
public VH(View v){}
}
}