All Projects → SheHuan → Recyclerviewadapter

SheHuan / Recyclerviewadapter

Licence: apache-2.0
A RecyclerView Adapter that support load more and add headerview

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Recyclerviewadapter

Kotlin Adapter
🔥 RecyclerView,AbsListView适配器, 支持多种视图样式, 支持吸顶、侧滑删除、拖拽效果
Stars: ✭ 132 (-6.38%)
Mutual labels:  adapter, recyclerview
Sectionedrecyclerviewadapter
An Adapter that allows a RecyclerView to be split into Sections with headers and/or footers. Each Section can have its state controlled individually.
Stars: ✭ 1,659 (+1076.6%)
Mutual labels:  adapter, recyclerview
Multiitem
一个优雅的实现多类型的RecyclerView类库 支持DataBinding Form表单录入 跨多个RecyclerView拖动
Stars: ✭ 381 (+170.21%)
Mutual labels:  adapter, recyclerview
Fastadapter
The bullet proof, fast and easy to use adapter library, which minimizes developing time to a fraction...
Stars: ✭ 3,512 (+2390.78%)
Mutual labels:  adapter, recyclerview
Flagchatadapter
FlagChatAdapter is easy to implement enchanting recycler view adapter. Just extend your adapter with FlagChatAdapter, impliment some methods and voila! You have got the most beautiful looking chat on your phone. Zero boilerplate code, just put your variables in the right direction.
Stars: ✭ 39 (-72.34%)
Mutual labels:  adapter, recyclerview
Flexibleadapter
Fast and versatile Adapter for RecyclerView which regroups several features into one library to considerably improve the user experience :-)
Stars: ✭ 3,482 (+2369.5%)
Mutual labels:  adapter, recyclerview
Multityperecyclerviewadapter
一个专注于RecyclerView优雅刷新(接管资源和数据源)、高灵活、低耦合、健壮性以及高效性的MVP模式库,支持大多数Adapter
Stars: ✭ 763 (+441.13%)
Mutual labels:  adapter, recyclerview
GhostAdapter
No description or website provided.
Stars: ✭ 15 (-89.36%)
Mutual labels:  adapter, recyclerview
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (-73.76%)
Mutual labels:  adapter, recyclerview
Candyview
Implement any RecyclerView in just 1 Line. CandyView handles everything for you.
Stars: ✭ 15 (-89.36%)
Mutual labels:  adapter, recyclerview
Boardview
A draggable boardview for java android (Kanban style)
Stars: ✭ 309 (+119.15%)
Mutual labels:  adapter, recyclerview
Recyclerviewpresenter
RecyclerView Adapter Library with different models and different layouts as convenient as possible.
Stars: ✭ 86 (-39.01%)
Mutual labels:  adapter, recyclerview
Tableview
TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.
Stars: ✭ 2,928 (+1976.6%)
Mutual labels:  adapter, recyclerview
Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner
Stars: ✭ 376 (+166.67%)
Mutual labels:  adapter, recyclerview
adapster
Android library designed to enrich and make your RecyclerView adapters more SOLID
Stars: ✭ 17 (-87.94%)
Mutual labels:  adapter, recyclerview
Superadapter
[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。
Stars: ✭ 638 (+352.48%)
Mutual labels:  adapter, recyclerview
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (-12.06%)
Mutual labels:  adapter, recyclerview
AdapterLayout
ViewGroup backed by RecyclerView.Adapter = magic
Stars: ✭ 58 (-58.87%)
Mutual labels:  adapter, recyclerview
Slimadapter
A slim & clean & typeable Adapter without# VIEWHOLDER
Stars: ✭ 939 (+565.96%)
Mutual labels:  adapter, recyclerview
Grouprecyclerviewadapter
可增删改查、可动画展开收起、可吸附悬浮动态可配置的分组列表
Stars: ✭ 41 (-70.92%)
Mutual labels:  adapter, recyclerview

RecyclerViewAdapter

简介

一个支持RecyclerView加载更多、添加HeaderView的BaseAdapter

原理、效果

demo下载

导入

1. 添加JitPack仓库

在当前项目根目录下的 build.gradle 文件中添加如下内容:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

2. 添加项目依赖

dependencies {
        implementation 'com.github.SheHuan:RecyclerViewAdapter:1.2.9'
}

用法

一、创建Adapter

1、创建只有一种ItemView的Adapter

public class CommonRefreshAdapter extends CommonBaseAdapter<T> {

    public CommonRefreshAdapter (Context context, List<T> datas, boolean isLoadMore) {
        super(context, datas, isLoadMore);
    }

    @Override
    protected void convert(ViewHolder holder, T data, int position) {
        //init item
    }

    @Override
    protected int getItemLayoutId() {
        return item_layout;
    }
}

2、创建有多种ItemView的Adapter

public class MultiRefreshAdapter extends MultiBaseAdapter<T> {

    public MultiRefreshAdapter(Context context, List<T> datas, boolean isOpenLoadMore) {
        super(context, datas, isOpenLoadMore);
    }

    @Override
    protected void convert(ViewHolder holder, T data, int position, int viewType) {
        
    }

    @Override
    protected int getItemLayoutId(int viewType) {
        
    }

    @Override
    protected int getViewType(int position, T data) {
       
    }
}

二、初始化Adapter

1、 初始化只有一种ItemView的Adapter

CommonRefreshAdapter mAdapter = new CommonRefreshAdapter(this, data, true);

2、初始化只有一种ItemView的Adapter

MultiRefreshAdapter mAdapter = new MultiRefreshAdapter(this, data, true);

PS:true代表开启加载更多。

3、设置化EmptyView

View emptyView = LayoutInflater.from(this).inflate(R.layout.empty_layout, (ViewGroup) mRecyclerView.getParent(), false);
mAdapter.setEmptyView(emptyView);

4、直接移除EmptyView

mAdapter.removeEmptyView();

5、显示首次预加载无数据或失败的view,以便重新加载或提示用户

View reloadLayout = LayoutInflater.from(this).inflate(R.layout.reload_layout, (ViewGroup) mRecyclerView.getParent(), false);
mAdapter.setReloadView(reloadLayout);

6、设置化加载中、加载失败、加载完成的FooterView布局

mAdapter.setLoadingView(view);

mAdapter.setLoadFailedView(view);

mAdapter.setLoadEndView(view);

7、设置加载更多的回调

mAdapter.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(boolean isReload) {
                //do your load more;
            }
        });

8、设置只有一种ItemView的Item点击回调

mAdapter.setOnItemClickListener(new OnItemClickListeners<T>() {

            @Override
            public void onItemClick(ViewHolder viewHolder, T data, int position) {

            }
        });

9、设置有多种ItemView类型的Item点击回调

mAdapter.setOnMultiItemClickListener(new OnMultiItemClickListeners<T>() {
            @Override
            public void onItemClick(ViewHolder viewHolder, T data, int position, int viewType) {
                
            }
        });

10、设置Item子view点击事件

mAdapter.setOnItemChildClickListener(R.id.child, new OnItemChildClickListener<String>() {
            @Override
            public void onItemChildClick(ViewHolder viewHolder, String data, int position) {

            }
        });

11、给RecyclerView添加HeaderView

// 可添加多个
mAdapter.addHeaderView(view)

12、控制HeaderView的显示

mAdapter.isShowHeaderView()

13、数据不满一屏时默认关闭自动加载更多,可用如下方法开启

mAdapter.openAutoLoadMore()

14、某些情况你可能需要移除LoadView

mAdapter.clearLoadView()

三、更多操作

1、显示加载更多数据失败时的FooterView

mAdapter.loadFailed();

2、显示加载数据结束的FooterView

mAdapter.loadEnd();

3、重置Adapter

mAdapter.reset();

4、更新列表的相关方法

// 新data插入到原data的尾部(为加载更多封装的方法)
mAdapter.setLoadMoreData(data);

// 新data直接替换原data(为加载更多封装的方法)
mAdapter.setNewData(data);

// 通用插入数据
mAdapter.insert()

// 通用删除数据
mAdapter.remove()

// 通用更新数据
mAdapter.change()

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].