Android 简捷地为RecyclerView添加HeadView和FootView
2016-08-20 20:27
357 查看
之前自己尝试用ViewType的思路去实现为RecyclerView添加HeadView和FootView,总感觉自己写的代码太啰嗦了,向两位大神学习了一下他们的编码思路写了个简单了些的,分享给大家。
RecyclerView添加Header的正确方式
Android 优雅的为RecyclerView添加HeaderView和FooterView
废话不多说,上图上代码。
RecyclerView添加Header的正确方式
Android 优雅的为RecyclerView添加HeaderView和FooterView
废话不多说,上图上代码。
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> { private View headView; private View footView; public static final int HEAD = 1; public static final int NORMAL = 2; public static final int FOOT = 3; private List<String> datas; public RecyclerAdapter(List<String> datas) { this.datas = datas; } public void addHeadView(View headView) { this.headView = headView; } public void addFootView(View footView) { this.footView = footView; } public int getHeadViewCount() { return headView == null ? 0 : 1; } public int getFootViewCount() { return footView == null ? 0 : 1; } @Override public int getItemCount() { return datas.size() + getHeadViewCount() + getFootViewCount(); } @Override public int getItemViewType(int position) { if (position < getHeadViewCount()) return HEAD; if (position >= datas.size() + getHeadViewCount()) return FOOT; return NORMAL; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { if (viewType == HEAD) return new ViewHolder(headView); if (viewType == FOOT) return new ViewHolder(footView); View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_recycleritem, null); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { if (getItemViewType(position) == HEAD) return; if (getItemViewType(position) == FOOT) return; holder.tvItem.setText(datas.get(position-getHeadViewCount())); } class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.tv_item) TextView tvItem; public ViewHolder(View itemView) { super(itemView); if (itemView == headView) return; if (itemView == footView) return; ButterKnife.bind(this, itemView); } } }
相关文章推荐
- Android RecyclerView添加FootView和HeadView
- 为RecyclerView添加FootView和HeadView
- Android 简捷地为RecyclerView添加上拉加载
- android ListView添加Headview和Footview后onItemClick的position错误
- Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件
- ListView中headView和footView Android ListView的OnItemClickListener详解
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android RecyclerView添加头部和尾部
- Android中Recyclerview使用6----添加条目得到点击事件和长按事件(另一种写法,较简单)
- Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理
- listview如果添加的有Headview和Footview,onItemClick数值异常问题
- Android RecyclerView使用(二) -给Item添加点击事件
- 给listView添加headView或footView不显示的问题
- Android中Recyclerview使用3----添加条目得到点击事件和长按事件
- 【Android】给RecyclerView添加下拉刷新和加载更多(二)
- Android RecyclerView添加分割线
- Android-UI布局---RecyclerView学习(六)item添加删除展现的动画效果
- Android RecyclerView之添加Item分割线
- listview如果添加的有Headview和Footview,onItemClick数值异常
- Android为RecyclerView添加头部底部的简单方法