All Projects → jeanboydev → Android-RecyclerViewHelper

jeanboydev / Android-RecyclerViewHelper

Licence: Apache-2.0 License
RecyclerView的工具类,更方便的实现Adapter,item点击事件,更快的实现加载提示,分页加载。

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Android-RecyclerViewHelper

DiverseRecyclerAdapter
A small and yet powerful library, which greatly simplifies building lists of different items
Stars: ✭ 16 (-48.39%)
Mutual labels:  recyclerview
android-tableview-kotlin
Android's missing TableView component.
Stars: ✭ 40 (+29.03%)
Mutual labels:  recyclerview
AdapterLayout
ViewGroup backed by RecyclerView.Adapter = magic
Stars: ✭ 58 (+87.1%)
Mutual labels:  recyclerview
BaseRecyclerAndAdapter
BaseRecyclerAndAdapter
Stars: ✭ 86 (+177.42%)
Mutual labels:  recyclerview
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (+300%)
Mutual labels:  recyclerview
SlideTable
可以滑动 以表格形式展示数据
Stars: ✭ 14 (-54.84%)
Mutual labels:  recyclerview
CommonRecycler
极度封装RecyclerView里的adapter,holder,让其支持各种点击事件,使用方便
Stars: ✭ 19 (-38.71%)
Mutual labels:  recyclerview
LifecycleCells
An Android library that provides a Lifecycle to any ViewHolder through the implementation of the LifecycleOwner interface, allowing it to interact with a Lifecycle-Aware Component.
Stars: ✭ 19 (-38.71%)
Mutual labels:  recyclerview
SuperAdapter
A Super simple library can be used for inserting elements in between RecyclerView's elements.
Stars: ✭ 18 (-41.94%)
Mutual labels:  recyclerview
Android-Expandable-ConcatAdapter
A sample project that shows how to make an expandable RecyclerView easily with the ConcatAdapter
Stars: ✭ 40 (+29.03%)
Mutual labels:  recyclerview
volx-recyclerview-fast-scroll
An easy to use implementation for fast scroll recyclerview
Stars: ✭ 34 (+9.68%)
Mutual labels:  recyclerview
Antonio
Android library for the adapter view (RecyclerView, ViewPager, ViewPager2)
Stars: ✭ 89 (+187.1%)
Mutual labels:  recyclerview
FastScroll-RecyclerView
ReyclerView with fast scrolling and scroll popups
Stars: ✭ 37 (+19.35%)
Mutual labels:  recyclerview
StickyHeader
A simple lightweight sticky header ItemDecorator for RecyclerView
Stars: ✭ 108 (+248.39%)
Mutual labels:  recyclerview
CeilingLayout
CeilingLayout用来控制子View的吸顶联滑,理论上支持实现了NestedScrollingChild的联滑控件,如NestedScrollView、RecyclerView、SmartRefreshLayout等;只需要在xml里配置需要吸顶子View的位置索引就能自动实现吸顶联滑效果。
Stars: ✭ 26 (-16.13%)
Mutual labels:  recyclerview
WinForm.UI
WinForm 皮肤,自定义控件
Stars: ✭ 100 (+222.58%)
Mutual labels:  recyclerview
kandy
Sweet Android libraries written in Kotlin
Stars: ✭ 19 (-38.71%)
Mutual labels:  recyclerview
GhostAdapter
No description or website provided.
Stars: ✭ 15 (-51.61%)
Mutual labels:  recyclerview
react-native-nlist
原生Listview Native lListView react-native encapsulation Memory recovery reusing High performance
Stars: ✭ 60 (+93.55%)
Mutual labels:  recyclerview
devbricksx-android
DevBricksX provides plenty of useful classes that will be used in daily Android development.
Stars: ✭ 22 (-29.03%)
Mutual labels:  recyclerview

RecyclerViewHelper


介绍

方便快捷的 RecyclerView 工具类,支持添加自定义的 header,footer 布局,加载 tips,分页加载。

使用

  • 导入lib-RecyclerViewHelper
  • 具体实现
    
//使用helper实现分页加载和加载的Tips
recyclerViewHelper = new RecyclerViewHelper(list_container, listAdapter);

//设置没有数据的Tips
recyclerViewHelper.setTipsEmptyView(R.layout.view_data_empty);
//设置加载中的Tips
recyclerViewHelper.setTipsLoadingView(R.layout.view_data_loading);
//设置加载失败的Tips
recyclerViewHelper.setTipsErrorView(R.layout.view_data_error);
//设置header
recyclerViewHelper.setHeaderView(R.layout.view_header);

//默认加载更多 footer 也可自定义
recyclerViewHelper.useDefaultFooter();

//加载失败,没有数据时Tips的接口
recyclerViewHelper.setTipsListener(new TipsListener() {
    @Override
    public void retry() {
        //重新加载操作
    }
});

//加载更多的接口
recyclerViewHelper.setLoadMoreListener(new LoadMoreListener() {
    @Override
    public void loadMore() {
        //加载下一页操作
    }
});

recyclerViewHelper.setOnViewBindListener(new OnViewBindListener() {
    @Override
    public void onBind(RecyclerView.ViewHolder holder, int viewType) {
        Log.d(MainActivity.class.getName(), "==============onBind============");
        if (ViewType.TYPE_HEADER == viewType) {
            // TODO: 2017/7/13 header view bind
        } else if (ViewType.TYPE_FOOTER == viewType) {
            // TODO: 2017/7/13 footer view bind
        }
    }
});

recyclerViewHelper.setFooterChangeListener(new OnFooterChangeListener() {
    @Override
    public void onChange(RecyclerView.ViewHolder holder, int state) {
        Log.d(MainActivity.class.getName(), "==============onChange============");
        if (FooterState.LOADING == state) {
            // TODO: 2017/7/13 加载中
        } else if (FooterState.ERROR == state) {
            // TODO: 2017/7/13 加载失败
        } else if (FooterState.NO_MORE == state) {
            // TODO: 2017/7/13 加载完成
        }
    }
});

/*加载成功
 *
 *1. 若没有数据则显示 tips 没有数据
 *2. 若已有数据且 hasMore=true 刷新 adapter
 *3. 若已有数据且 hasMore=fale 刷新 footer 显示加载完成
 */
recyclerViewHelper.loadComplete(hasMore);

/*加载失败
 *
 *1. 若没有数据则显示 tips 加载失败
 *2. 若已有数据则显示加载失败
 */
recyclerViewHelper.loadError();

//
/*手动设置加载中(极少使用)
 *
 *1. 若没有数据则显示 tips 加载中...
 *2. 若已有数据则显示 footer 加载中...
 */
recyclerViewHelper.loadStart();

Demo

演示

感谢

关于我

如果对你有帮助,请 star 一下,然后 follow 我,给我增加一下分享动力,谢谢!

如果你有什么疑问或者问题,可以提交 issue 和 request,发邮件给我 [email protected]

或者加入下面的 QQ 群来一起学习交流。

Android技术进阶:386463747

License

Copyright 2015 jeanboy

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
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].