BaseRecycler-master

Android部件与拉刷新视图,并支持loadMore ListView,RecyclerView,GridView和SwipeRefreshLayout.

在[CommonPullToRefresh ](https://github.com/Chanven/CommonPullToRefresh,感谢作者

在[BaseRecyclerViewAdapterHelper 这个库主要是Adapter的支持不是RecyclerView ](https://github.com/CymChad/BaseRecyclerViewAdapterHelper,感谢作者

结合了BaseRecyclerViewAdapterHelper的Adapter的强大支持和CommonPullToRefresh对下拉刷新加载更多的灵活使用

  • 支持CommonPullToRefresh中的所有刷新下拉效果
  • 支持所有BaseRecyclerViewAdapterHelper中的RecyclerView功能
  • 支持自定义header以及footer

####Demo个别效果截图

####使用截图

处理GridLayoutManager问题

在RecyclerAdapterWithHF中重写onAttachedToRecyclerView,onViewAttachedToWindow

@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    WrapperUtils.onAttachedToRecyclerView(mAdapter, recyclerView, new WrapperUtils.SpanSizeCallback() {
        @Override
        public int getSpanSize(GridLayoutManager layoutManager, GridLayoutManager.SpanSizeLookup oldLookup, int position) {
            int viewType = getItemViewType(position);
            if (viewType==TYPE_HEADER&&mHeaders.get(position) != null) {
                return layoutManager.getSpanCount();
            } else if (viewType==TYPE_FOOTER&&mFooters.get(position - getItemCountHF() - mHeaders.size()) != null) {
                return layoutManager.getSpanCount();
            }
            if (oldLookup != null)
                return oldLookup.getSpanSize(position);
            return 1;
        }
    });
}

@Override
public void onViewAttachedToWindow(T holder) {
    mAdapter.onViewAttachedToWindow(holder);
    int position = holder.getLayoutPosition();
    if (isHeader(position) || isFooter(position))
    {
        WrapperUtils.setFullSpan(holder);
    }
}

常见问题

轮播图跟滑动冲突 重写onScroll即可 参考CusPtrClassicFrameLayout.class

具体可参考Demo

也可以下载上面两位作者的代码Demo修改相关代码整合