# 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. 刚学计算机先学什么好,计算机语言入门先学什么?
  2. 蓝桥杯 PREV-5历届试题 错误票据
  3. 在mysql中怎么存储表情符号,如何在MySQL数据库中存储表情符号字符
  4. java缓存技术的介绍
  5. linux终端字体安装,在Gnome-terminal下安装以及使用Monaco字体
  6. 基于生物特征密钥生成研究 ------应用于区块链领域密钥的生成办法
  7. Latex同时添加中英文摘要
  8. 程序员微信名昵称_好听的微信名800个
  9. 树莓派_配置邮件客户端
  10. Sicily 1090. Highways
  11. LCD1602显示字母和数字--51
  12. 努比亚Z11系统服务器选择,良心!努比亚Z11系列机型系统升级新版本后性能提升明显...
  13. BTT、BZZ、IPFS都是分布式存储那到底有何区别?一文读懂
  14. Mt7628调试简记
  15. mysql memos
  16. 内部UML培训文件,欢迎大家批评指正
  17. BeautifulSoup 与 Xpath
  18. Python轮子网站及使用方法
  19. 程序设计思维与实践 Week2 作业 B - Pour Wate
  20. LCD、LED、OLED、ELED、CCFL之间的区别

热门文章

  1. P4850 [IOI2009] 葡萄干 raisins 题解
  2. 爬取实习僧工作岗位信息
  3. 深入理解AX Inventory Aging Report
  4. xp如何删除计算机管理员用户账户,“WINXP系统除Administrator以外只有一个管理员账户时,此帐户默认无法删除,如何删除”的解决方案...
  5. 八段数码管数字显示实验c语言,实验报告__实验七_八段数码管显示实验
  6. 贷款逾期,征信记录五年之内可以消除?
  7. 淘宝SDK高级模板,设计师模块开放接口详解
  8. spyder报错汇总
  9. OJ 2312 Problem B Peach
  10. 目标检测透视变换数据增强包含label(yolov5格式)