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' }仅支持
>=7.1.0版本.
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() //this is important! } }dependencies { ... implementation "io.github.angcyo.DslAdapter:Adapter:7.1.0" }发布的版本号,可以在这里查看. 点击查看
请访问 WIKI文档 查看详情说明.
正在整理的DslItem库, 囊括项目开发中能够见到的Item, 皆旨让开发更高效. 欢迎PR.
扫码安装
群内有各(pian)种(ni)各(jin)样(qun)的大佬,等你来撩.


















