使用sticky-headers-recyclerview 完成 recyclerview粘性头部
2016-08-23 17:51
393 查看
一. Gradle 添加
https://github.com/timehop/sticky-headers-recyclerview
二. 使用方式
https://github.com/timehop/sticky-headers-recyclerview
二. 使用方式
首先是xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.v7.widget.RecyclerView android:id="@+id/RecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#fff" android:scrollbars="none" /> </RelativeLayout>
Activity 初始化 RecyclerView
public class WithLookPlanActivity extends Activity { private StickyRecyclerHeadersDecoration topStickyHeadersItemDecoration; private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); initView(); } private void initView() { recyclerView = (RecyclerView) findViewById(R.id.withLookRv); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerViewAdapter adapter= new recyclerViewAdapter(dataList); recyclerView.setAdapter(recyclerViewAdapter); topStickyHeadersItemDecoration = new StickyRecyclerHeadersDecoration(recyclerViewAdapter); //设置recyclerView需要的Decoration }
RecyclerViewAdapter -- 绑定head
public class WithLookPlanAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements StickyRecyclerHeadersAdapter<RecyclerView.ViewHolder> { //继承并实现StickyRecyclerHeadersAdapter private List<dataList> dataList; public WithLookPlanAdapter(List<WithLookPlansListData> dataList) { this.dataList = dataList; setHasStableIds(true); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { final MyViewHolder myViewHolder = (MyViewHolder) holder; if (position >= dataList.size()) { return; } String name = dataList.get(position).name; String age = dataList.get(position).age } @Override public int getItemCount() { return dataList.size(); } //必须重写 不然item会错乱 @Override public long getItemId(int position) { return position; } @Override public RecyclerView.ViewHolder onCreateHeaderViewHolder(ViewGroup parent) { View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_header_view, parent, false); return new MyHeaderViewHolder(itemView); } //headView @Override public void onBindHeaderViewHolder(RecyclerView.ViewHolder viewHolder, int position) { MyHeaderViewHolder myHeaderViewHolder = (MyHeaderViewHolder) viewHolder; myHeaderViewHolder.title.setText(dataList.get(position).name); //设置head数据 } @Override public long getHeaderId(int position) { long headName = dataList.get(position).name.hashCode(); return headName; //得到headId 唯一性 } public class MyViewHolder extends RecyclerView.ViewHolder { public TextView nameTv; public TextView ageTv; public MyViewHolder(View view) { super(view); nameTv = (TextView) view.findViewById(R.id.nameTv); ageTv = (TextView) view.findViewById(R.id.ageTv); } }// item public static class MyHeaderViewHolder extends RecyclerView.ViewHolder { TextView title; public MyHeaderViewHolder(View itemView) { super(itemView); title = (TextView) itemView.findViewById(R.id.HeadTv); } //head }
相关文章推荐
- 给recycleView 相同某一属性排序,粘性头部控件sticky-headers-recyclerview
- RecyclerView粘性头部控件 - sticky-headers-recyclerview
- RecyclerView粘性头部控件 - sticky-headers-recyclerview
- RecyclerView 悬浮/粘性头部——StickyHeaderDecoration
- Android RecyclerView-使用Itemdecoration实现粘性头部功能,详细到具体步骤.
- sticky-headers-recyclerview库使用出现的问题
- Android RecyclerViewStickyHeaders 使用Demo
- StickHeaderItemDecoration--RecyclerView使用的固定头部装饰类
- Android Recyclerview粘性头部 简单实现
- Android中Recyclerview使用5----添加头部:RecyclerViewHeader
- 使用RecyclerView的ItemDecoration实现StickyHeader效果(笔记)
- RecyclerView的使用以及下拉刷新自动加载(添加点击事件、头部)
- 【Android - 控件】之可悬浮列表StickyHeadersRecyclerView
- Android RecyclerView粘性头部的两种实现方式
- 很简单为RecyclerView添加头部:使用一个类RecyclerViewHeader
- 使用RecyclerView完成聊天界面以及消息的更新
- 使用ItemDecoration为RecyclerView打造带悬停头部的分组列表
- Android上使用RecyclerView实现顶部悬浮标题效果的Sticky Title View
- Android 从零开始实现RecyclerView分组及粘性头部效果
- 使用RecyclerView来完成聊天对话框