RecyclerView多条目加载和ListView的多条目加载用法是一样的,代码如下:
1.导入RecyclerView或XRecyclerView的依赖包(自己按照需求导入依赖包,下面RecyclerView可以替换成XRecyclerView)XRecyclerView可以实现上拉加载,下拉刷新,而RecyclerView不可以
//Recyclerview compile 'com.android.support:recyclerview-v7:22.1.1' compile 'com.android.support:appcompat-v7:22.1.1'
2.xml的布局文件
<android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="match_parent" />
3.自己定义多条目的布局
一、Adapter(简单的多条目)
public class ThreeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final int TYPRONE = 1; private final int TYPETWO = 2; Context context; MusicBean bean; ArrayList<MusicBean.SongListBean> list; ArrayList<MusicBean.SongListBean> list1; public ThreeAdapter(Context context, MusicBean bean) { this.context = context; this.bean = bean; } @Override public int getItemViewType(int position) { if(position%2==0){ return TYPRONE; } else if(position%2==1){ return TYPETWO; } else { return super.getItemViewType(position); } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType==TYPRONE){ View view = LayoutInflater.from(context).inflate(R.layout.three_item_one, null); ViewHolderA viewHolderA = new ViewHolderA(view); return viewHolderA; }else if(viewType==TYPETWO){ View view = LayoutInflater.from(context).inflate(R.layout.three_item_two, null); ViewHolderB viewHolderB = new ViewHolderB(view); return viewHolderB; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof ViewHolderA){ list1=new ArrayList<>(); for(int i=0;i<bean.getSong_list().size();i++){ list1.add(new MusicBean.SongListBean(bean.getSong_list().get(position).getPic_small(),bean.getSong_list().get(position).getTitle())); } ImageLoader.getInstance().displayImage(list1.get(position).getPic_small(),((ViewHolderA) holder).img); }else if(holder instanceof ViewHolderB){ list=new ArrayList<>(); for(int i=0;i<bean.getSong_list().size();i++){ list.add(new MusicBean.SongListBean(bean.getSong_list().get(position).getPic_small(),bean.getSong_list().get(position).getTitle())); } ((ViewHolderB) holder).text.setText(list.get(position).getTitle()); } }