在工作中多次遇到需要为RecyclerView设置悬浮或者说粘性的头部,于是有了这个东西。有一点非常重要的是,如果搭配 BaseRecyclerViewAdapterHelper 可以实现更加丰富的效果,比如类似QQ好友列表的分组悬浮以及其他一些需求。
- 添加jitpack仓库
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
- 添加依赖
implementation 'com.github.downtail:ItemDecorationPlus:0.2.0'
- 实现接口(让adapter来实现)
public class MaskedAdapter extends RecyclerView.Adapter<MaskedAdapter.SampleHolder> implements FloaterExtension{}
public interface FloaterExtension {
//是否悬浮
boolean isFloaterView(int position);
//悬浮的itemType
@IntRange(from = 0, to = Integer.MAX_VALUE)
int getItemType(int position);
}
- 为RecyclerView添加ItemDecoration
FloaterView floaterView = FloaterView.init(rvExhibition)
.addItemType(ExhibitionMultipleEntity.ITEM_HEADER,R.layout.item_basket_exhibition_header)
.setOnBindViewListener(new FloaterView.OnBindViewListener() {
@Override
public void onBind(View view, int position) {
}
})
.setOnItemChildClickListener(new FloaterView.OnItemChildClickListener() {
@Override
public void onItemChildClick(View view, int position) {
}
});
FloaterItemDecoration floaterItemDecoration = new FloaterItemDecoration(exhibitionMultipleAdapter, floaterView);
-
具体使用参考demo
-
以上即为使用方法。
如果有什么问题或者新的想法可以issue或者联系我。