• Stars
    star
    533
  • Rank 83,238 (Top 2 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

Gitee仓库地址

文档地址

有何用?

只有一个目的高效开发, 一切都是为了效率.

可能以前写界面, 还在为了继承某个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组合而成.

您所要做的就是:

  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(参考示例)
  16. 支持Item动画(4.3.0后)
  17. 支持将DslAdapterItem添加到任意ViewGroup中(5.1.0后)
  18. 支持单独将DslAdapterItemitemBind逻辑绑定在任意View中(5.1.0后)
  19. 新增IDslItem,并支持自动初始化(6.0.0minApi>=14)

功能展示

情感图切换 加载更多
情感图切换 加载更多
折叠展开 群组功能
折叠展开 群组功能
单选 多选
单选 多选
滑动选择 拖拽排序
滑动选择 拖拽排序
侧滑删除 树结构
侧滑删除 树结构
侧滑菜单 DslItem
侧滑菜单 DslItem

实战案例

多类型可复用内嵌Item 支持上下Item流的逻辑关联
多类型可复用内嵌Item 支持上下Item流的逻辑关联
IM界面也能完美胜任 可动态控制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:6.0.1'
    //支持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对话 该死的空格 点此快速加群

开源地址

扫码进群

给点鼓励

趋势

angcyo/DslAdapter

👏 感谢

angcyo/DslAdapter

More Repositories

1

DslTabLayout

♥️ Android界最万能的TabLayout(不仅仅是TabLayout), 支持任意类型的item, 支持Drawable类型的指示器,智能开启滚动,支持横竖向布局等
Kotlin
1,148
star
2

PLDroidDemo

👍YUV-->H264,YUV-->RGB, GL Blur, GPUImage
Java
210
star
3

android-gpuimage-plus-master

图片特效,相机特效,视频特效 Demo
Java
137
star
4

RJcenter

😘常用公共类, Android 开源项目, 开发工具, 开发框架, 开发库整理; 牛人推荐整理;
Java
135
star
5

LoopRecyclerView

无限循环的RecyclerView
Java
53
star
6

HoverItemDecoration

Kotlin--›超轻量RecyclerView悬停效果(带touch点击事件)
33
star
7

FlowRadioGroup

流式的RadioGroup, 子RadioButton, 自动流式排列;使用方法和RadioGroup基本一致;
Java
31
star
8

PaintDemo

Android 实现的画板, 迷你版的 你画我猜,实现了客户端服务端同步功能
Java
30
star
9

ExKeyboardDemo

键盘表情切换方案, 支持透明状态栏,支持对话框,支持动画展开.
Java
23
star
10

DslBehavior

Android Behavior下拉刷新库,上下内嵌滚动控件联动Behavior库
Kotlin
23
star
11

RecyclerLayoutManager

Java
21
star
12

HighlightTextView

局部高亮的TextView,可以设置高亮字符开始的位置,高亮字符的个数,高亮字符的颜色
Java
21
star
13

ContactsPicker

Android 联系人选择器
Java
17
star
14

DexFixDemo

最简单的补丁修复方案, http://www.jianshu.com/p/5f390be47ce8
Java
15
star
15

RQrCodeDemo

个人认为开源二维码扫描封装库中, 最快的. 请随手点个Star. 谢谢!
Java
14
star
16

DeskClock

Android Pie 系统闹钟源码. 来自分支 origin/pie-release-2
Java
12
star
17

DslSpan

Android一个强大的自定义span(`DslDrawableSpan`), 以及一个`SpannableStringBuilder`使用工具.
Kotlin
12
star
18

LoveHeart

浪漫的表白程序
Java
12
star
19

RTabLayout

[废弃]超级高效,轻量,极强自定义指示器,任意自定义Tab类型的TabLayout, 直接继承自ViewGroup实现.
Kotlin
10
star
20

RecyclerViewPager

将RecycleView打造出ViewPager的效果
Java
10
star
21

QrCodeZxingZbar

Android二维码/条码识别库, 使用Zxing/Zbar交替识别. 互补互助, 急速扫码.
Java
9
star
22

HaloProgressBarDemo

Kotlin-->模仿QQ发送图片进度效果
Kotlin
9
star
23

DslFragment

AndroidX Fragment懒加载实现方案, 以及Fragment懒加载操作库
Kotlin
8
star
24

DslItem

基于DslAdapter的DslAdapterItem库, 挑选能用的, 把界面拼起来.
Kotlin
7
star
25

HotFixMultiDexDemo

热修复,补丁项目
Java
6
star
26

Android_Gradle_DSL_7.0.0

2021-8-5 Android_Gradle_DSL_7.0.0
Kotlin
5
star
27

RRes

使用代码的方式创建Drawable(RDrawable), 使用代码的方式创建动画(RAnim).
Java
5
star
28

MaskLayout

Android--›圆角图片,圆角任意View,圆角父布局Layout(任意形状的View且超简洁实现)
Java
5
star
29

gradle

2020-7-2
4
star
30

Android_Gradle_DSL_4.0

com.android.tools.build:gradle:4.0.0
Kotlin
4
star
31

RaceLottery

北京赛车-独一无二的彩票平台
Java
4
star
32

_360jiagu

AS--›Gradle 360加固和Walle渠道打包
4
star
33

UIView

2016-11-03 全新的UIView框架
Kotlin
4
star
34

Android_Gradle_DSL_3.3

android.tools.buid.gradle.3.3
HTML
4
star
35

dumpDex

C++
4
star
36

DslButton

Android Button控件, 为了不在xml中写drawable而生. 死磕代码.
Kotlin
3
star
37

BuglyDemo

Bugly热更新接入脚本
Java
3
star
38

UICoreEx

2019-12-19
Kotlin
3
star
39

LogbackDemo

2016-5-14
Java
3
star
40

UICore

2019-12-19
Kotlin
3
star
41

OaSchool

2015-9-1 学校办公OA系统
Java
3
star
42

EventBus3.0Demo

2016-08-15
Java
2
star
43

CreateWaytoProjectPlugin

Kotlin
2
star
44

IDCardRecognition

Android 身份证号码识别 (本地,在线,实时)
Java
2
star
45

CameraDemo

摄像头, 高斯模糊图片
Java
2
star
46

SocketFileUpload

Socket 断点文件上传,客户端和服务端
Java
2
star
47

vsplayer

信息发布系统
Java
2
star
48

RePluginDemo

Android--›360全面插件化RePlugin框架交互通信使用概述
Kotlin
2
star
49

AnimCheckViewDemo

Kotlin
2
star
50

UICoreDemo

2019-12-19
Shell
2
star
51

Runoob

菜鸟教程(http://www.runoob.com/), 安卓版(非官方)
Java
2
star
52

UIKitEx

https://github.com/angcyo/uikit
Java
2
star
53

ImagePickerDemo

Swift 相册选择图片 和 相机选择图片
Swift
2
star
54

PhotoGetDemo

Android,相册选择图片,拍照选择图片,相册裁剪图片,拍照裁剪图片;(大小图通用)
Java
2
star
55

MetaDataDemo

Android-->AndroidManifest.xml 文件 <meta-data> 使用方法
Java
1
star
56

DuDuHome

2016-3-7
Java
1
star
57

UIKitDemo

https://github.com/angcyo/UIKit
1
star
58

FlutterAbc

Flutter入门学习应用
Dart
1
star
59

android_hkcloud

android_hkcloud Eclipse Project
Java
1
star
60

Daemon

https://github.com/sunfusheng/DaemonService https://github.com/xingda920813/HelloDaemon
Java
1
star
61

VideoDemo

视频横竖屏切换的2种方式-->博客地址:http://blog.csdn.net/angcyo/article/details/78293465
Java
1
star
62

RHttp

Retrofit+OkHttp3+RxJava
Java
1
star
63

PagerTransition

极致体验,图片转场动画(类似微信/QQ图片查看效果, 带拖拽返回, 高扩展, 支持任意类型界面过渡)
1
star
64

RLibrary

2017-03-12
Java
1
star
65

Y2HaveFun

initial commit_
Java
1
star
66

iosched-master

Google I/O 2015 Android App (谷歌I/O 2015 Android App,已使用最新的Android Studio 2.1 编译可运行)
Java
1
star
67

Android_Sources_28_9

Android Sources 安卓9 API 28, 源码和res资源
Java
1
star
68

DuDuHome_Home

2016-7-25
Java
1
star
69

OkSocketDemo

2023-04-27
Java
1
star
70

DriveVideoDemo

Camera 预览模糊,不包含录像
Java
1
star
71

Android4.4Src_core

2016-6-24
Java
1
star
72

DuDuHome_Record

2016-7-25
Java
1
star
73

ThreadDemo

Swift NSThread GCD NSBlock , 多线程使用Demo
Swift
1
star
74

Android_Gradle_DSL_3.2

[废弃]gradle android dsl 3.2 源码分析
HTML
1
star
75

ViewControllerDemo

Swift ViewController Demo http://blog.csdn.net/angcyo/article/details/52340560
Swift
1
star
76

RRealm

Realm数据库接入 2018-2-13
Java
1
star
77

bdplayer-sample

百度播放器SDK完整版v2.2.4
Java
1
star
78

ProxyDemo

Kotlin--›初识Android Proxy接口动态代理
Kotlin
1
star
79

umeng

友盟分享快速集成库
Java
1
star
80

QQTabNavDemo

Android-->模仿QQ7.0底部导航效果
Kotlin
1
star