Android 比 ListView 更好用强大的 RecyclerView 库:RecyclerViewLibrary
2016-02-15 09:40
666 查看
前言
今天给大家推荐个我大哥写的关于 RecyclerView 的库,非常强大。以下是 README:
RecyclerViewLibrary
A RecyclerView libirary ,has some support, like headerAdapter/TreeAdapter,and PulltoRefreen/Drag
gradle
compile
dependencies { compile 'com.ldzs.recyclerlibrary:recyclerlibrary:1.6.2' }
一个RecyclerView扩展库,其中主要包含
1:针对RecyclerView数据适配器的封装2:RecyclerView上拉刷新,下拉加载
3:RecyclerView拖动
2016/12/28
增加了pv_adapterView引用,此引用功能为PullToRefreshRecyclerView xml布局内增加的控件,标记为header/footer,则直接添加到adapter的header/footer内,减少代码添加header/footer做法.但因recyclerView的延持加载机制,导致findViewById找不到控件的方式,特别提供了findAdapterView方法.
2017/5/21
增加了StickyHeader的效果.功能非常强大,在原有功能基础上扩展,简化分组数据逻辑,自动同步更改.最大化减少了Adapter的逻辑代码.并支持GridLayoutManager,一共四个示例.
2017/7/11
修正了GridLayoutManager分隔线问题去掉了难以配置的RefreshFooter的引用,改为一个自定义的footerStyle决定
<style name="FrameFooterView" > <item name="footer_footerHeight">60dp</item> <item name="footer_clickTextHint">@string/click_load_more</item> <item name="footer_textSize">14sp</item> <item name="footer_textColor">@color/dark_gray</item> <item name="footer_errorHint">@string/load_error</item> <item name="footer_retryItemSelector" >@drawable/btn_retry_selector</item> <item name="footer_complete">@string/load_complete</item> <item name="footer_retry" >@string/re_try</item> <item name="footer_load">@string/loading</item> </style>
RecyclerView
自定义数据适配器
DynamicAdapter:完全动态化的Adapter,支持往任一位置插入自定义条目,使用装饰设计模式,无使用限制 like : 1|2|3| --4-- //add 5|6|7| 8|9|10|ExpandAdapter:Recyclerview实现为如ExpandListView功能的数据适配器.
TreeAdapter:一个无限级的Adapter树
SelectAdapter:一个封装了用户选择的数据适配器对象,选择模式有,点击/单选/多选/块选
HeaderAdapter:一个支持动态添加/移除头和尾的Adapter,不推荐单独使用.PullToRefreenceRecyclerView内己封装,可如ListView一般操作,且更灵活己弃用(2016/9/24己弃用)
================
RecyclerView
拖动(Drag)
Linear/Grid拖动Dynamic条目拖动(跨度很大的任一条目支持)
自定义示例(新闻资讯类)演示
================
================
RecyclerView
上拉刷新下拉加载(刷新框架来自另一个项目 [ PullToRefreshLayout ]
PullToRefreshRecyclerView介绍
PullToRefreshLayout:另一个下拉刷新的加载库 隔离封装的Adapter支持: 其中控件内,提供的Adapter为:SelectAdapter,层级判断为:DynamicAdapter->RefreshAdapter->SelectAdapter 其中DynamicAdapter为负责任一元素位置插入条目的扩展数据适配器. RefreshAdapter为固定底部的Footer的数据适配器. 而最上层的SelectAdapter,则提供类似ListView的selectMode选择功能的数据适配器.适配器需实现Selectable接口
实现的功能为:
1:recyclerView的下拉刷新,上拉加载,2:顶部以及,底部的控件自由添加,删除,中间任一位置控件添加,此为确保RecyclerView数据一致性.比如新闻类应用.可能为了广告,为了某些提示条目,还需要去适合到逻辑Adapter内.导致条目很难看.
3:Adapter的条目选择功能.
4:类ListView的Divide封装
================
###2016/3/16 更新了cursorAdapter支持,直接拷贝了v4内的ListView的CursorAdapter的代码.稍做微改就完成了转换.因为CursorAdapter本身就是一个就是一个展示数据的adapter,并不局限于.为哪一个adapter服务.重新查看了CursorAdapter源码.发现,其数据更新推荐使用Loader,而不推荐使用CursorAdapter提供的autoQuery操作.也为我解释了.CursorAdapter的释放时机的问题.Loader自身维护Cursor的查询,数据更改查询,关闭等操作.而Cursor本身也界面也有藕合,设计更为合理.
###2016/9/24
重构了部分代码.以适应开发.将另一个新写的PullToRefreLayout引入作为下拉刷新使用,独立了下拉刷新组件,上拉加载,通过单独的Adapter支持.
将包装的Adapter层级更为DynamicAdapter->RefreshAdapter->SelectAdapter,DynamicAdapter为Adapter支持动态插入任一布局功能(此功能极其强大.谁用谁知道哈),RefreshAdapter为Aadpter增加,底部刷新,以及其他布局支持.SelectAdapter则为布局增加了条目选择功能.每种布局又可以单独作为装饰器对象.直接使用.当然更推荐直接采用PullToRefreshRecyclerView
###2016/10/10
增加了部分listfood自定义属性.因为是布局,所以在自己的样式里.必须加入,不清楚好是不好...如果不看,引入项目,使用会报错,感觉好像不太好.
<item name="refresh_footerHeight">40dp</item> <item name="refresh_clickTextHint">@string/click_load_more</item> <item name="refresh_textSize">14sp</item> <item name="refresh_textColor">@color/blue</item> <item name="refresh_errorHint">@string/load_error</item> <item name="refresh_retryItemSelector" >@drawable/btn_retry_selector</item> <item name="refresh_retry" >@string/re_try</item>
参考:RecyclerView-Animator实现动画.非常感谢.
相关文章推荐
- android 新建工程,没R.java 文件
- android Alibaba热补丁修复使用
- Getting java.net.SocketTimeoutException: Connection timed out in android
- Android 查看pdf文档——PDFView
- android:ellipsize实现跑马灯效果总结
- Android 知识图谱
- Android学习笔记之Serializable和Parcelable的区别
- android 入门 006(sqlite增删改查)
- android 有阻尼下拉刷新列表的实现
- Android一步步深入理解View(一):LayoutInflater的使用和原理分析
- Android Studio工程中”R“文件的位置
- 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"
- android proxy settings with lantern
- android View的点击事件分发机制的简单认知
- Android开发之语言国际化
- Android LBS
- 通过adb连接win7与android
- android 学习 day day up
- android开发搜集
- ANDROID_MARS学习笔记_S01原始版_010_ContentProvider