原博客讲得很清楚了,本文只是作为收藏。
将FloatingBarItemDecoration.javacopy放到自己的项目下,然后像添加分隔线一样
recyclerView.addItemDecoration(new FloatingBarItemDecoration(this, mHeaderList));
这个mHeaderList是浮动标题的位置
LinkedHashMap<Integer, String> mHeaderList = new LinkedHashMap<>();
mHeaderList.put(0, "标题1");//显示在第1行上面
mHeaderList.put(4, "标题2");//显示在第5行上面
mHeaderList.put(6, "标题3");
这样就可以了!
我用的时候略微修改了下,之前布局有问题,用上这个分隔线不见了,公共布局不太好改,然后就在这改下间隔距离
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
int position = ((RecyclerView.LayoutParams) view.getLayoutParams()).getViewAdapterPosition();
//mTitleHeight : 1:前面是浮动标题的高度,后面那个1是每个RecyclerView每个item项的间隔距离,间隔1dp然后根据背景色可以添加分隔线;
outRect.set(0, mList.containsKey(position) ? mTitleHeight : 1, 0, 0);
}
项目紧急,先用再说~~