RecyclerView多种item类型头部底部
2016-07-04 10:18
274 查看
想要定义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
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
相关文章推荐
- NOIP 2012 借教室
- Spring3.2新注解@ControllerAdvice
- 文本相似度计算
- 有容云:DevOps 的起点-入手微型数据中心(上)
- SEO
- Android序列化:Serializable和Parcelable
- build\tools\buildinfo.sh
- 图片上传预览功能
- SpringMVC 拦截器
- Android View系统源码分析(七)—— View.refreshDrawableState()
- 计算机原理(四)
- MYSQL日期增减 2016.07.01回顾
- 图像的泊松(Poisson)编辑、泊松融合完全详解
- 讨论“get”和“post”安全性
- IP地址分类及ISO-OSI、三次握手
- (swift)UICollectionView方法/属性详解
- 创业1
- 从数据库导出数据
- PHP读书笔记(6)- 数组
- React-Native学习指南