您的位置:首页 > 其它

RecyclerView多种item类型头部底部

2016-07-04 10:18 260 查看
想要定义RecyclerView多种item类型头部底部,就要重写RecyclerView.Adapter

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





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

   @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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: