Need help with DslAdapter?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

angcyo
280 Stars 32 Forks MIT License 216 Commits 3 Opened issues

Description

:fire: Android Kotlin时代的Adapter, Dsl 的形式使用 RecyclerView.Adapter, 支持折叠展开, 树结构,悬停,情感图状态切换, 加载更多, 多类型Item,侧滑菜单等

Services available

!
?

Need anything else?

Contributors list

# 61,758
HTML
Kotlin
Android
Shell
215 commits

DslAdapter

API GitHub branch checks state GitHub AndroidX GitHub top language JitPack

GitHub code size in bytes GitHub repo size GitHub last commit GitHub issues GitHub Repo stars GitHub forks

Kotlin
时代的
Adapter
.

Dsl
的形式使用
RecyclerView.Adapter
, 支持情感图状态切换, 加载更多, 多类型
Item

文档地址

有何用?

只有一个目的

高效开发
, 一切都是为了
效率
.

可能以前写界面, 还在为了继承某个

xxActivity
or
xxFragment
,
xml
布局到底使用
xxLayout
而烦扰.

有了

DslAdapter
, 一切皆是
RecyclerView
的天下.

你所能见到的

普通界面
,
列表界面
,
带滚动的界面
等等, 都可以使用
DslAdapter
轻松高效实现.

注意:

轻松高效实现
,
轻松高效实现
,
轻松高效实现
.
//普通界面渲染
renderAdapter{
    普通1Item()
    普通2Item()
    普通3Item()
    ...
}

//列表界面渲染 renderAdapter{ 头部Item() 轮播图Item() 列表Item() 列表Item() 列表Item() ... 尾部Item() 加载更多Item() }

//普通界面和列表界面 如出一辙, 一点也不用惊讶,后面还有更刺激的.

//and so on

open fun renderAdapter(render: DslAdapter.() -> Unit) { dslAdapter.render() }

你没有看错, 就是这么

简单
, 就是这么
高效
. 一个字
...爽 爽 爽...

任意界面, 都是由若干个

相同Item
or
不相同Item
组合而成.

您所要做的就是:

  1. 将界面拆分成
    若干个Item
  2. 继承
    DslAdapterItem
    实现对应的
    Item
    即可

魅力无极限, 期待您的表现.

特性

  1. 全网最轻量
    多类型Item
    实现方法 (只需要关心
    布局
    +
    逻辑
    )
  2. 支持
    情感图状
    态(空布局 加载中 错误异常等)切换,完美支持自定义扩展 (也是一个
    Item
    )
  3. 支持
    加载更多
    完美支持自定义扩展 (也是一个
    Item
    )
  4. 支持分组
    折叠
    (类似QQ联系人好友分组,展开和折叠的效果)
  5. 支持Item
    悬停
    (类似QQ联系人好友分组,悬停的效果)
  6. 支持常规的
    分割线
    (一会儿占满屏幕 一会儿有点边距的效果)
  7. 支持单
    选/多选
    (支持固定选项)
  8. 支持某一个Item更新时,
    定向更新
    多个其他Item (在表单编辑界面,很有用.)
  9. 支持
    群组
    功能 (指定连续的几个相同/不同的item为一组)
  10. 支持
    滑动选择
    (手指拖拽, 就可以选中范围内item)
  11. 支持
    拖拽排序
    侧滑删除
    (注意不是侧滑菜单)
  12. 支持
    树结构
    类似于
    idea
    中的文件列表目录结构 (支持异步加载)
  13. 支持
    左右侧滑菜单
    (
    2.4.0
    后)
  14. 支持
    DataBinding
    (
    3.0.0
    后)
  15. 支持
    ViewBinding
    (参考示例)

功能展示

情感图切换

加载更多

折叠展开

群组功能

单选

多选

滑动选择

拖拽排序

侧滑删除

树结构

侧滑菜单

DslItem

实战案例

多类型可复用内嵌

Item
支持上下
Item
流的逻辑关联

IM界面也能完美胜任

可动态控制

Item
的表单界面

疑问

如何实现最后一个
Item
撑满
RecycleView
底部的剩余空间(如果有)?

需要自定义

ViewGroup
, 在
onLayout
方法中, 计算出
RecycleView
底部的剩余空间, 赋值给
LayoutParams
即可.

使用
JitPack
的方式, 引入库.

根目录中的
build.gradle

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

APP目录中的
build.gradle

dependencies {
    //androidx(推荐)
    implementation 'com.github.angcyo:DslAdapter:3.0.2'
    //支持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

正在整理的DslItem库, 囊括项目开发中能够见到的

Item
, 皆旨让开发更高效. 欢迎PR.

下载体验

扫码安装

License

FOSSA Status


群内有

各(pian)种(ni)各(jin)样(qun)
的大佬,等你来撩.

联系作者

点此QQ对话

该死的空格
点此快速加群

开源地址

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.