Android粘贴标题RecyclerView/Section Header RecyclerView

Pra*_*mod 9 android android-recyclerview

大家好我刚刚创建了一个演示来使用新的Android L小部件RecyclerView.I还使用SwipeRefreshLayout实现了Pull-To-Refresh,但现在我的问题是如何在这里实现粘性头,因为当我尝试设置

mRecyclerView.setOnScrollListener(new OnScrollListener() {

    @Override
    public void onScrolled(int arg0, int arg1) {

    }

    @Override
    public void onScrollStateChanged(int arg0) {
        // TODO Auto-generated method stub

    }
});
Run Code Online (Sandbox Code Playgroud)

我只得到这两种方法,所以我不知道如何处理这个......

请帮忙..

Bud*_*ius 5

public void onScrolled(int dx, int dy)

那些是你收到的两个参数,onScrolled也就是说,RecyclerView在X轴和Y轴上改变的像素数......所以你想要做的就是:

@Override
public void onScrolled(int dx, int dy) {
   if(dx < 0) // going up
      showSitckyHeader();
}
Run Code Online (Sandbox Code Playgroud)

您可以通过添加最小滚动量来进一步改进此实现.就像是:

int totalScrolled = 0;
@Override
public void onScrolled(int dx, int dy) {
   totalScrolled += dx;
   if(totalScrolled < MIN_SCROLL)
      showSitckyHeader();
   if(dx > 0)
      totalScrolled = 0;
}

@Override
public void onScrollStateChanged(int newState) {
   if(newState == SCROLL_STATE_IDLE || newState = SCROLL_STATE_SETTLING)
       totalScrolled = 0;
}
Run Code Online (Sandbox Code Playgroud)

甚至更进一步实现速度,计算时间,但这些类型的实现更棘手,你必须自己测试.


Dav*_*eas 5

由于之前的答案没有提供可靠的解决方案,我提出了我的RecyclerView FlexibleAdapter库,它能够同时处理所有以下功能:

  • 带有Sections的标题的粘性功能,适用于所有3个LayoutManagers和ViewPager.
  • 选择模式.
  • 具有自动映射的多个项类型.
  • 预定义的ViewHolders.
  • 具有选择一致性的可扩展项目.
  • 可拖动和滑动到关闭.
  • 具有spannable文本的动画异步过滤器.
  • 滚动动画.
  • 带有适配器绑定的EndlessScroll.
  • UndoHelper和ActionMode Helper.
  • FastScroller.
  • ...和更多.

其背后的想法是避免为每个项目重新创建自定义适配器,并在一个库中具有更多功能,而不是依赖于仅支持其中1个或3个并且无法合并的不同库.

  • 您能否回顾一下这篇文章:[如何提供个人开源库?](https://meta.stackexchange.com/q/229085)?您似乎在各个地方发布了关于您的图书馆的信息,而没有定制您对上下文的回答. (4认同)