Kotlin时代的Adapter.
Dsl 的形式使用 RecyclerView.Adapter, 支持情感图状态切换, 加载更多, 多类型Item等
只有一个目的高效开发, 一切都是为了效率.
可能以前写界面, 还在为了继承某个xxActivityorxxFragment, xml布局到底使用xxLayout而烦扰.
有了DslAdapter, 一切皆是RecyclerView的天下.
你所能见到的普通界面,列表界面,带滚动的界面等等, 都可以使用DslAdapter轻松高效实现.
注意: 是轻松高效实现,轻松高效实现,轻松高效实现.
//普通界面渲染
dslAdapter.render {
this + 普通1Item()
this + 普通2Item()
this + 普通3Item()
...
底部普通Item()()
}
//列表界面渲染
dslAdapter.render {
刷新指示器Item()()
头部Item()()
轮播图Item()()
列表Item()()
列表Item()()
列表Item()()
...
尾部Item()()
加载更多Item()()
}
//普通界面和列表界面 如出一辙, 一点也不用惊讶,后面还有更刺激的.
//and so on你没有看错, 就是这么简单, 就是这么高效. 一个字...爽 爽 爽...
任意界面, 都是由若干个相同Itemor不相同Item组合而成.
您所要做的就是:
- 将界面拆分成
若干个Item - 继承
DslAdapterItem实现对应的Item即可
魅力无极限, 期待您的表现.
全网最轻量的多类型Item实现方法 (只需要关心布局+逻辑)- 支持
情感图状态(空布局 加载中 错误异常等)切换,完美支持自定义扩展 (也是一个Item) - 支持
加载更多完美支持自定义扩展 (也是一个Item) - 支持分组
折叠(类似QQ联系人好友分组,展开和折叠的效果) - 支持Item
悬停(类似QQ联系人好友分组,悬停的效果) - 支持常规的
分割线(一会儿占满屏幕 一会儿有点边距的效果) - 支持单
选/多选(支持固定选项) - 支持某一个Item更新时,
定向更新多个其他Item (在表单编辑界面,很有用.) - 支持
群组功能 (指定连续的几个相同/不同的item为一组) - 支持
滑动选择(手指拖拽, 就可以选中范围内item) - 支持
拖拽排序侧滑删除(注意不是侧滑菜单) - 支持
树结构类似于idea中的文件列表目录结构 (支持异步加载) - 支持
左右侧滑菜单(2.4.0后) - 支持
DataBinding(3.0.0后) - 支持
ViewBinding(参考示例) - 支持
Item动画(4.3.0后) - 支持将
DslAdapterItem添加到任意ViewGroup中(5.1.0后) - 支持单独将
DslAdapterItem的itemBind逻辑绑定在任意View中(5.1.0后) - 新增
IDslItem,并支持自动初始化(6.0.0后minApi>=14) 7.0.0->minSdk->21compileSdk->35
| 情感图切换 | 加载更多 |
|---|---|
| 折叠展开 | 群组功能 |
|---|---|
| 单选 | 多选 |
|---|---|
| 滑动选择 | 拖拽排序 |
|---|---|
| 侧滑删除 | 树结构 |
|---|---|
| 侧滑菜单 | DslItem |
|---|---|
多类型可复用内嵌Item |
支持上下Item流的逻辑关联 |
|---|---|
| IM界面也能完美胜任 | 可动态控制Item的表单界面 |
|---|---|
需要自定义ViewGroup, 在onLayout方法中, 计算出RecycleView底部的剩余空间, 赋值给LayoutParams即可.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}dependencies {
//androidx(推荐)
implementation 'com.github.angcyo:DslAdapter:7.1.0'
//支持DataBinding
implementation 'com.github.angcyo:DslAdapter:3.0.0-binding'
//support版请使用(不保证及时更新)
implementation 'com.github.angcyo:DslAdapter:1.2.0'
//跟随作者最新版请使用
implementation 'com.github.angcyo:DslAdapter:master-SNAPSHOT'
}发布的版本号,可以在这里查看. 点击查看
请访问 WIKI文档 查看详情说明.
正在整理的DslItem库, 囊括项目开发中能够见到的Item, 皆旨让开发更高效. 欢迎PR.
扫码安装
群内有各(pian)种(ni)各(jin)样(qun)的大佬,等你来撩.