MCPcopy Index your code
hub / github.com/boboyuwu/PinnedHeaderItemDecoration

github.com/boboyuwu/PinnedHeaderItemDecoration @V1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release V1.0.2 ↗ · + Follow
120 symbols 239 edges 13 files 13 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PinnedHeaderItemDecoration

一个提供吸顶效果的ItemDecoration 现在网上有很多类似这种效果的轮子,那么为什么还要重复造这个轮子呢? 因为网上的吸顶效果基本都是基于ItemDecoration绘制的,也就是说只能看没法操作,只是达到了一个视图的效果。 这样可能不满足一些特定的需求,比如吸顶的这种Type类型的View需要点击处理怎么办? 基于这种情况,开发了既不影响点击又可以自由设置吸顶Type的ItemDecoration.

PinnedHeaderItemDecoration支持LinearLayoutManager和GridLayoutManager,目前只支持不带Header以及带Header吸顶效果

image

使用时只需要将你的Adapter实现AdapterStick接口即可,默认只需要实现这个方法isPinnedViewType()返回需要吸顶的Type 即可实现吸顶效果,所以哪种Type类型需要吸顶效果相关逻辑处理完全交给使用者去决定,这样比较灵活,并且由于完全不干涉各种Type类型 布局填充等逻辑,一切还是按照原生Adapter操作,所以可以实现点击事件等操作.如果存在多个Header情况请额外实现getHeaderCount() 方法并返回添加的HeaderView总长度.

  public class SimpleAdapter extends Adapter implements AdapterStick{

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }

    //请返回实际HeadView数量
    @Override
    public int getHeaderCount() {
        return 0;
    }

    @Override
    public boolean isPinnedViewType(int viewType) {
        //DO..... 需要吸顶viewType相关逻辑

        return false;
    }
}

而在Activity里面这样调用即可,非常简单~

  SimpleAdapter simpleAdapter = new SimpleAdapter(this,list);
  recyclerView.addItemDecoration(PinnedHeaderItemDecoration.builder().adapterProvider(simpleAdapter).build());

依赖方式

1:JitPack allprojects { repositories { ... maven { url 'https://jitpack.io' } } }

2:dependency

dependencies { compile 'com.github.boboyuwu:PinnedHeaderItemDecoration:V1.0.1' }

Extension points exported contracts — how you extend this code

AdapterStick (Interface)
Created by wubo on 2017/8/22. [4 implementers]
library/src/main/java/com/pipikou/library/AdapterStick.java
Stick (Interface)
Created by wubo on 2017/8/22. [2 implementers]
library/src/main/java/com/pipikou/library/Stick.java

Core symbols most depended-on inside this repo

setText
called by 12
simple/src/main/java/com/pipikou/simple/SimpleBean.java
setType
called by 8
simple/src/main/java/com/pipikou/simple/SimpleBean.java
getTitle
called by 5
simple/src/main/java/com/pipikou/simple/SimpleBean.java
getText
called by 5
simple/src/main/java/com/pipikou/simple/SimpleBean.java
builder
called by 4
library/src/main/java/com/pipikou/library/PinnedHeaderItemDecoration.java
adapterProvider
called by 4
library/src/main/java/com/pipikou/library/PinnedHeaderItemDecoration.java
build
called by 4
library/src/main/java/com/pipikou/library/PinnedHeaderItemDecoration.java
getType
called by 4
simple/src/main/java/com/pipikou/simple/SimpleBean.java

Shape

Method 90
Class 28
Interface 2

Languages

Java100%

Modules by API surface

simple/src/main/java/com/pipikou/simple/NoHeaderPinnedGridActivity.java20 symbols
simple/src/main/java/com/pipikou/simple/OneHeaderPinnedGridActivity.java19 symbols
simple/src/main/java/com/pipikou/simple/TwoHeaderPinnedActivity.java17 symbols
simple/src/main/java/com/pipikou/simple/NoHeaderPinnedActivity.java17 symbols
library/src/main/java/com/pipikou/library/PinnedHeaderItemDecoration.java15 symbols
simple/src/main/java/com/pipikou/simple/SimpleBean.java9 symbols
library/src/main/java/com/pipikou/library/AdapterStick.java7 symbols
simple/src/main/java/com/pipikou/simple/LaunchActivity.java6 symbols
simple/src/test/java/com/pipikou/simple/ExampleUnitTest.java2 symbols
simple/src/androidTest/java/com/pipikou/simple/ExampleInstrumentedTest.java2 symbols
library/src/test/java/com/pipikou/library/ExampleUnitTest.java2 symbols
library/src/main/java/com/pipikou/library/Stick.java2 symbols

For agents

$ claude mcp add PinnedHeaderItemDecoration \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page