Skip to content

githappygo/RecyclerViewAdapter

 
 

Repository files navigation

RecyclerViewAdapter

##简介 一个支持RecyclerView加载更多的BaseAdapter

原理、效果

demo下载

##导入

dependencies {
    compile 'com.othershe:BaseAdapter:1.0.4'
}

##用法

####1、创建Adapter (1)创建只有一种ItemView的Adaptr

public class CommonRefreshAdapter extends CommonBaseAdapter<T> {

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

    @Override
    protected void convert(ViewHolder holder, T data) {
        //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 viewType) {
        
    }

    @Override
    protected int getItemLayoutId(int viewType) {
        
    }

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

####2、初始化Adapter (1)初始化只有一种ItemView的Adaptr

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

(2)初始化只有一种ItemView的Adaptr

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、初始化加载中、加载失败、加载完成的Footer View布局

mAdapter.setLoadingView(view);

mAdapter.setLoadFailedView(view);

mAdapter.setLoadEndView(view);

####5、设置加载更多的回调

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

####6、设置item的点击回调 (1)设置只有一种ItemView的Item点击回调

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

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

            }
        });

(2)设置有多种ItemView类型的Item点击回调

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

####7、更新列表的相关方法

//新data插入到原data的尾部
mAdapter.setLoadMoreData(data);

//新data直接替换原data
mAdapter.setNewData(data);

//新data插入到原data头部
mAdapter.setData(data);

About

A RecyclerView Adapter that support load more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%