Sliver RecyclerView 功能最强大、最好用的适配器
# Sliver
[github主页](https://github.com/sunshaobei/Satis)
[文档](https://sunshaobei.gitbook.io/satis/sliver)
使用方式
- 首先在使用模块project gradle 中添加mavencentral() 仓库
```groovy
repositories {
...
mavenCentral()
}
```
- 然后在使用模块module gradle 中添加
```kotlin
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
}
dependencies {
...
implementation "io.github.sunshaobei:satis-sliver:1.0.1"
}
```
- 单类型布局
```kotlin
//list 数据集合
//item 列表item数据
//position 列表位置
//holder viewhodler
recyclerView.sliver{
datas = list
layoutManager = LinearLayoutManager(this@MainActivity)
item<数据类型>{
layoutId = R.layout.item1
selector = {item,position->
//多类型使用判断 返回true 即表示使用此类型 item
retun true
}
itemContent = { item,position,viewholder->
}
}
item<数据类型>{
layoutId = R.layout.item2
selector = {item,position->
//多类型使用判断 返回true 即表示使用此类型 item
retun true
}
itemContent = { item,position,viewholder->
}
}
item<数据类型,ViewDataBinding>{
selector = {item,position->
//多类型使用判断 返回true 即表示使用此类型 item
retun true
}
itemContent = { item,position,binding->
}
}
}
```
databinding 使用
```kotlin
recyclerView.satis(list){
item<数据类型,ViewDataBinding>{
selector = {item,position->
//多类型使用判断 返回true 即表示使用此类型 item
retun true
}
itemContent = { item,position,binding->
}
}
}
```
selector 作用在于存在多种类型type 时,根据此判断选择是否采用此类型。
- databinding xml中使用
```kotlin
<androidx.recyclerview.widget.RecyclerView
···
datas="@{items}"
layoutId="@{@layout/R.layout.item_single_type}"
brStr="@{BR ID}"
/>
```
目前在建议在单类型布局的情况使用 databinding xml 方式(仅上面三行代码搞定),多类型的不建议使用databinding xml 实现(我也没实现相关功能,考虑点在:多类型情况下在xml中实现反而更加复杂,不符合我对简洁代码的期望)
- 其他api
```kotlin
recyclerView.satis(list){
...
layoutManager = ...// 默认为linearLayoutManager
//添加头部 headerView 头部View
header = headerView1
header = headerView2
//添加尾部 footView
footer = footView1
footer = footView2
//点击事件 参数分别为: viewholder、 列表中的实际位置、所在数据集合中的位置
itemClick = {holder, adapterPosition, listPosition ->
Toast.makeText(this@SingleTypeActivity, "点击 position -$p2", Toast.LENGTH_SHORT)
.show()
}
//分割线 oriention方向、 size 分割线高度、color 颜色
//其中 pading 在水平方向 近 top跟bottom 剩下,垂直方向仅left、right 生效
divider{
orientation = VERTICAL_LIST
size = 1
color = Color.RED
paddingLeft = 10
paddingRight = 10
paddingTop = 10
paddingBottom = 10
}
}
```
## 代码构思架构不易,想做一个体现“好用”开源开发框架,希望各位大佬多多支持,不吝赐教。
有想法欢迎讨论给建议,私信加群
Sliver RecyclerView 功能最强大、最好用的适配器相关推荐
- 可能是目前轻量级弹幕控件中功能最强大的一款
本项目是一个开源的弹幕控件库,能够支持多种样式弹幕,弹幕点击监听,弹幕分区域显示,自定义移动速度等功能,项目原理是通过自定义ViewGroup.可能是目前轻量级弹幕控件中功能最强大的一款了. Gith ...
- day5 RecyclerView、多布局、万能适配器
RecyclerView 概义 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加 ...
- .NET平台功能最强大,性能最佳的JSON库
转自:陈鑫伟 cnblogs.com/Dogwei/p/10372436.html Swifter.Json 这是迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Git ...
- Webmin是目前功能最强大的基于Web的Unix系统管理工具
Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作.目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的l ...
- 你了解世界上功能最强大的开源数据库吗?
如果不是领导强制要求,可能根本不会留意到这款号称世界上功能最强大的开源数据库--PostgreSQL.如果你不读这篇文章,或许也会错过一个跃跃欲试想挤进前三的优秀数据库. 为了能够熟练运用,特意买书研 ...
- GPT-4发布!迄今为止功能最强大AI模型!
金磊 梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 一觉醒来,万众期待的GPT-4,它来了! OpenAI老板Sam Altman直接开门见山地介绍说: 这是我们迄今为止功能最强大的模型! 有 ...
- [转]功能最强大的编辑器——vi
功能最强大的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...
- 世界上功能最强大的开源数据库-PostgreSQL
转载自:https://www.lzfkj.vip/post/22 文章目录 简述 PostgreSQL 特性 安装 源码安装 安装后所常见到的错误 1.提示相关命令不存在 2.提示连接不了数据库 3 ...
- 功能最强大的代码生成器——EasyCode
前段时间和朋友一起,花了近一年的时间,终于开发完成了一款.Net平台下的代码生成工具. 话不多说,有图有视频有真相: 视频教程:http://v.youku.com/v_show/id_XMzU2M ...
- 【微软Visual Studio面世20周年巨制】全宇宙功能最强大IDE Visual Studio 2017 正式版发布
Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...
最新文章
- webform开发经验(一):Asp.Net获取Checkbox选中的值
- vue + element 顶部二级菜单_揭秘vue/react组件库中5个quot;作者不造的轮子quot;
- Git 之四 分支管理
- 深刻理解:C#中的委托、事件
- vijos1056-图形面积【离散化】
- vue-cli3引入第三方的js依赖包并使用其方法
- 【例题+习题】【数值计算方法复习】【湘潭大学】(六)
- 吴裕雄--天生自然 JAVASCRIPT开发学习: 表单验证
- SiteMesh配置下载使用(简单介绍)
- VS开发问题:应用程序无法启动 因为程序的并行配置不正确 ,解决方案
- 医疗时鲜资讯:移动医疗 or 互联网医疗 or 远程医疗?
- c语言如何遍历数组,C语言数组遍历
- iOS股票K线图、分时图绘制
- 2020年最新Java后端学习路线,适用于所有Java初学者!
- 中国美女黑客攻击4G网络?详解
- 三层交换工作原理及配置过程
- 002--软考程序员之硬件组成原理
- PCIE DWC - 3 - PCI-PM Software Compatible Mechanisms
- 2013国内IT行业薪资对照表【技术岗】
- 【计算机毕业设计】医生在线问诊答疑微信小程序
热门文章
- 阿里云国际站代充值个人注册与分销商邀约区别
- 计算机不能关机处理方法,电脑无法关机的解决办法
- centos7进程限制、打开文件限制等
- 计算机应用基础制作新春贺卡图片,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书...
- python读取tiff图像,浅谈python下tiff图像的读取和保存方法
- python 图形可视化_Python数据可视化-图形,python,曲线图
- vios 虚拟光驱 安装vioc
- 拔丝芋头的Java学习日记---Day9
- 编译android vendor,Android ----制作自己的Vendor
- 04 Convex problem凸优化问题