# 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 功能最强大、最好用的适配器相关推荐

  1. 可能是目前轻量级弹幕控件中功能最强大的一款

    本项目是一个开源的弹幕控件库,能够支持多种样式弹幕,弹幕点击监听,弹幕分区域显示,自定义移动速度等功能,项目原理是通过自定义ViewGroup.可能是目前轻量级弹幕控件中功能最强大的一款了. Gith ...

  2. day5 RecyclerView、多布局、万能适配器

    RecyclerView 概义 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加 ...

  3. .NET平台功能最强大,性能最佳的JSON库

    转自:陈鑫伟 cnblogs.com/Dogwei/p/10372436.html Swifter.Json 这是迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Git ...

  4. Webmin是目前功能最强大的基于Web的Unix系统管理工具

    Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作.目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的l ...

  5. 你了解世界上功能最强大的开源数据库吗?

    如果不是领导强制要求,可能根本不会留意到这款号称世界上功能最强大的开源数据库--PostgreSQL.如果你不读这篇文章,或许也会错过一个跃跃欲试想挤进前三的优秀数据库. 为了能够熟练运用,特意买书研 ...

  6. GPT-4发布!迄今为止功能最强大AI模型!

    金磊 梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 一觉醒来,万众期待的GPT-4,它来了! OpenAI老板Sam Altman直接开门见山地介绍说: 这是我们迄今为止功能最强大的模型! 有 ...

  7. [转]功能最强大的编辑器——vi

    功能最强大的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...

  8. 世界上功能最强大的开源数据库-PostgreSQL

    转载自:https://www.lzfkj.vip/post/22 文章目录 简述 PostgreSQL 特性 安装 源码安装 安装后所常见到的错误 1.提示相关命令不存在 2.提示连接不了数据库 3 ...

  9. 功能最强大的代码生成器——EasyCode

    前段时间和朋友一起,花了近一年的时间,终于开发完成了一款.Net平台下的代码生成工具.  话不多说,有图有视频有真相: 视频教程:http://v.youku.com/v_show/id_XMzU2M ...

  10. 【微软Visual Studio面世20周年巨制】全宇宙功能最强大IDE Visual Studio 2017 正式版发布

    Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...

最新文章

  1. webform开发经验(一):Asp.Net获取Checkbox选中的值
  2. vue + element 顶部二级菜单_揭秘vue/react组件库中5个quot;作者不造的轮子quot;
  3. Git 之四 分支管理
  4. 深刻理解:C#中的委托、事件
  5. vijos1056-图形面积【离散化】
  6. vue-cli3引入第三方的js依赖包并使用其方法
  7. 【例题+习题】【数值计算方法复习】【湘潭大学】(六)
  8. 吴裕雄--天生自然 JAVASCRIPT开发学习: 表单验证
  9. SiteMesh配置下载使用(简单介绍)
  10. VS开发问题:应用程序无法启动 因为程序的并行配置不正确 ,解决方案
  11. 医疗时鲜资讯:移动医疗 or 互联网医疗 or 远程医疗?
  12. c语言如何遍历数组,C语言数组遍历
  13. iOS股票K线图、分时图绘制
  14. 2020年最新Java后端学习路线,适用于所有Java初学者!
  15. 中国美女黑客攻击4G网络?详解
  16. 三层交换工作原理及配置过程
  17. 002--软考程序员之硬件组成原理
  18. PCIE DWC - 3 - PCI-PM Software Compatible Mechanisms
  19. 2013国内IT行业薪资对照表【技术岗】
  20. 【计算机毕业设计】医生在线问诊答疑微信小程序

热门文章

  1. 阿里云国际站代充值个人注册与分销商邀约区别
  2. 计算机不能关机处理方法,电脑无法关机的解决办法
  3. centos7进程限制、打开文件限制等
  4. 计算机应用基础制作新春贺卡图片,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书...
  5. python读取tiff图像,浅谈python下tiff图像的读取和保存方法
  6. python 图形可视化_Python数据可视化-图形,python,曲线图
  7. vios 虚拟光驱 安装vioc
  8. 拔丝芋头的Java学习日记---Day9
  9. 编译android vendor,Android ----制作自己的Vendor
  10. 04 Convex problem凸优化问题