RecyclerView多种item类型头部底部

想要定义RecyclerView多种item类型头部底部,就要重写RecyclerView.Adapter


getItemViewType 方法  RecyclerView.Adapter 代码简单明了 话不多说先看效果再看代码






1.RecyclerView 添加不同item的方法  就是在getItemViewType定义不同类型


扫描二维码关注公众号,回复: 13614083 查看本文章

   @Override
    public int getItemViewType(int position) {
        if (position == 0) {
            return IS_HEADER;
        } else if (position == data.size() + 1) {
            return IS_FOOTER;
        } else {
            return IS_NORMAL;
        }
    }

2.显示不同类型的item View,以及解决RecyclerView在XML 中设置MATCH_PARENT无效



    @Override
    public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {


        if (viewType == IS_NORMAL) {


            View view = View.inflate(mContext, R.layout.home_fragment_item, null);

//要从代码中手动动给出MATCH_PARENT
            view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            return new ListViewHolder(view, IS_NORMAL);
        } else if (viewType == IS_HEADER) {


            View view = View.inflate(mContext, R.layout.home_fragment_header, null);
            view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            return new ListViewHolder(view, IS_HEADER);
        } else if (viewType == IS_FOOTER) {


            View view = View.inflate(mContext, R.layout.home_fragment_footer, null);
            view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            return new ListViewHolder(view, IS_FOOTER);
        }
        return null;
    }


源码 下载地址http://download.csdn.net/detail/qq_31902733/9566636

猜你喜欢

转载自blog.csdn.net/qq_31902733/article/details/51818993