在android开发中,有很多页面,可能一个页面上面需要2种不同的recyclerView,一般的,我们会使用一个scrollview,然后嵌套2个recyclerView,但是嵌套总会有点问题,除非你重写方法,listView是重写listview的onMeasure方法,RecyclerView重写LayoutManager方法,具体可以参考之前的一篇博客
http://blog.csdn.net/picasso_l/article/details/50324863
但是,这么做可能还是会有这样那样的限制。
下面介绍一种新的方法,全部用一个RecyclerView或者listview显示,用getItemViewType方法中不同的position,设置不同的ViewType
核心思想:
1.重写RecyclerView.Adapter的getItemViewType(int position),在此方法中根据不同的position,设置不同的ViewType
2.编写具体的RecyclerView.ViewHolder子类(不同子类对应不同View或Layout)
3.重写RecyclerView.Adapter的onCreateViewHolder(ViewGroup parent,int viewType) 在此方法中根据我们之前设置的ViewType来返回不同的RecyclerView.ViewHolder的子类
直接上代码
public class FunItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<FunItemModel.ImageUrlEntity> mImgList;
private List<CommentsEntity> mCommentList;
private Context mContext;
private String author, time, msg, authorUrl, location;
private static final int TYPE_INFO = 0;
private