鸿蒙开源组件——移植BRVAH到鸿蒙

jacksky
发布于 2022-2-21 17:58
浏览
1收藏

BaseRecyclerViewAdapterHelper-ohos

介绍

移植于github优秀开源库BaseRecyclerViewAdapterHelper 地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

一个强大并且灵活的RecyclerViewAdapter 支持以下列表功能: 1、动画效果:缩放 侧入 渐入 2、添加头尾布局 3、多type类型布局 4、分组多type布局 5、差分刷新 6、下拉刷新 7、空布局 8、树形-3级菜单

 

鸿蒙开源组件——移植BRVAH到鸿蒙-鸿蒙开发者社区

导入方式

 

将JitPack存储库添加到您的构建文件中(项目根目录下build.gradle文件)

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

(文档仍在补全当中…… 代码是最好的老师,如遇问题,请先查看demo)

 

使用说明:

Adapter 的使用1

Adapter 的使用2

Adapter 的使用3

 

模块的使用

 

LoadMore
Adapter代码

 

Adapter类实现LoadMoreModule接口即可,无需做其他操作

代码如下:

// adapter 实现接口 LoadMoreModule
public class LoadMoreAdapter extends BaseQuickAdapter<Status, BaseViewHolder> implements LoadMoreModule {
    ………………
}

 

调用方法

Adapter通过getLoadMoreModule()方法获取此模块。

示例如下:

// 获取模块
mAdapter.getLoadMoreModule();

// 打开或关闭加载更多功能(默认为true)
mAdapter.getLoadMoreModule().setEnableLoadMore(false);

// 是否自定加载下一页(默认为true)
mAdapter.getLoadMoreModule().setAutoLoadMore(true);

// 当数据不满一页时,是否继续自动加载(默认为true)
mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);

// 所有数据加载完成后,是否允许点击(默认为false)
mAdapter.getLoadMoreModule().setEnableLoadMoreEndClick(false);

// 是否处于加载中
mAdapter.getLoadMoreModule().isLoading();

// 预加载的位置(默认为1)
mAdapter.getLoadMoreModule().setPreLoadNumber(1);

// 设置加载更多监听事件
mAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
    @Override
    public void onLoadMore() {
        loadMore();
    }
});

/******************************** 状态设置 ********************************/
// 当前这次数据加载完毕,调用此方法
mAdapter.getLoadMoreModule().loadMoreComplete();

// 当前这次数据加载错误,调用此方法
mAdapter.getLoadMoreModule().loadMoreFail();

// 所有数据加载完成,调用此方法
// 需要重置"加载完成"状态时,请调用 setNewData()
mAdapter.getLoadMoreModule().loadMoreEnd();

// 状态手动置为“加载中”,并且会调用加载更多监听
// 一般情况下,不需要自己设置'加载中'状态
mAdapter.getLoadMoreModule().loadMoreToLoading();

 

设置自定义的LoadMore View
默认自带了一套LoadMore视图,你可以根据需要,设置自己的视图。设置视图分为两种方式:

1、全局设置(优先度低)
代码如下:

public class MyApplication extends Application {
  
    @Override
    public void onCreate() {
        // 在 Application 中配置全局自定义的 LoadMoreView
        LoadMoreModuleConfig.setDefLoadMoreView(new CustomLoadMoreView());
    }
}

 

2、Adapter单独设置(优先于全局设置)
代码如下:

mAdapter.getLoadMoreModule().setLoadMoreView(new CustomLoadMoreView());

 

3、自定义LoadMoreView
自定义类集成于BaseLoadMoreView。

示例如下:

public final class CustomLoadMoreView extends BaseLoadMoreView {

    @NotNull
    @Override
    public View getRootView(@NotNull ViewGroup parent) {
        // 整个 LoadMore 布局
        return LayoutInflater.from(parent.getContext()).inflate(R.layout.view_load_more, parent, false);
    }

    @NotNull
    @Override
    public View getLoadingView(@NotNull BaseViewHolder holder) {
        // 布局中 “加载中”的View
        return holder.findView(R.id.load_more_loading_view);
    }

    @NotNull
    @Override
    public View getLoadComplete(@NotNull BaseViewHolder holder) {
        // 布局中 “当前一页加载完成”的View
        return holder.findView(R.id.load_more_load_complete_view);
    }

    @NotNull
    @Override
    public View getLoadEndView(@NotNull BaseViewHolder holder) {
        // 布局中 “全部加载结束,没有数据”的View
        return holder.findView(R.id.load_more_load_end_view);
    }

    @NotNull
    @Override
    public View getLoadFailView(@NotNull BaseViewHolder holder) {
        // 布局中 “加载失败”的View
        return holder.findView(R.id.load_more_load_fail_view);
    }
}

 

base-recycler-view-adapter-helper-ohos-m.zip 860.71K 23次下载
已于2022-2-21 17:58:35修改
收藏 1
回复
举报
回复
    相关推荐