long mode 分页_GitHub - skyloma/BRV: Android最强RecyclerView库, 不仅仅是简洁的双向数据绑定框架, Kotlin/多类型/选择模式/拖拽侧滑/头脚...

介绍

代码量最少, 使用便捷, 非侵入式, 满足常见需求, 同时方便扩展和自定义.

特性

全网最少的代码

Kotlin的特性

通用适配器, 无需继承

快速实现常见需求

刷新还是添加数据都无闪屏

需求

用最少的代码实现开发过程中的常见需求:

多类型

单一数据模型一对多

多数据模型

添加头布局和脚布局

点击/长按事件

过滤重复点击

分组

展开折叠

顶部附着

支持所有的LayoutManager的分割线/均布间隔

切换模式

选择模式

全选/取消全选/反选

单选

监听选择事件

拖拽移动

侧滑删除

下拉刷新 | 上拉加载 (PageRefreshLayout)

多状态缺省页 (PageRefreshLayout)

自动分页加载 (PageRefreshLayout)

扩展

伸缩布局 (FlexboxLayoutManager)

自动化网络请求 (KalleExtension)

该网络请求基于Kalle|RxJava 实现自动化的网络请求

未来将支持:

无限滚动

安装

project 的 build.gradle

allprojects {

repositories {

// ...

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

}

}

module 的 build.gradle

implementation 'com.github.liangjingkanji:BRV:1.2.14'

预览

初始化

class MyApplication : Application() {

override fun onCreate() {

super.onCreate()

BindingAdapter.modelId = BR.m // 推荐在Application中进行初始化或使用之前即可

}

}

多类型

不同数据模型

rv.linear().setup {

addType(R.layout.item_1)

addType(R.layout.item_2)

}.models = data

一对多数据模型

开发中常常遇到一个列表, 列表每个数据对应的一个字段来判断itemType

addType{

// 使用年龄来作为判断返回不同的布局

when (age) {

23 -> {

R.layout.item_1

}

else -> {

R.layout.item_2

}

}

}

分割线

快速实现分割线

fun RecyclerView.divider(

@DrawableRes drawable: Int,

@RecyclerView.Orientation orientation: Int = RecyclerView.VERTICAL,

block: ((Rect, View, RecyclerView, RecyclerView.State) -> Boolean)? = null

)

监听事件

监听事件需要先添加想要监听的view

fun addClickable(@IdRes vararg id

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值