博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android recycleView的研究和探讨
阅读量:5091 次
发布时间:2019-06-13

本文共 1390 字,大约阅读时间需要 4 分钟。

RecyclerViewLibrary

A RecyclerView libirary ,has some support, like headerAdapter/TreeAdapter,and PulltoRefreen/Drag

一个RecyclerView扩展库,当中主要包括

1:针对RecyclerView数据适配器的封装

2:RecyclerView上拉刷新,下拉载入
3:RecyclerView拖动

RecyclerView 自己定义数据适配器

  • HeaderAdapter:一个支持动态加入/移除头和尾的Adapter,不推荐单独使用.PullToRefreenceRecyclerView内己封装,可如ListView一般操作,且更灵活
  • ExpandAdapter:Recyclerview实现为如ExpandListView功能的数据适配器.
  • TreeAdapter:一个无限级的Adapter树
  • DynamicAdapter:全然动态化的Adapter,支持往任一位置插入自己定义条目.

RecyclerView 拖动(Drag)

  • Linear/Grid拖动
  • Dynamic条目拖动(跨度非常大的任一条目支持)
  • 自己定义控制演示 ================

 

RecyclerView 上拉刷新下拉载入

 

部分实现介绍

RecyclerView#setAdapter mAdapter==HeaderViewAdapter:RecyclerView内部维护Adapter,所以实现不影响使用者Adapter的情况下,类ListView般使用,实现like:ListView的HeaderListAdapter

@Override    public void setAdapter(Adapter adapter) {        mAdapter.setAdapter(adapter);        super.setAdapter(mAdapter);        adapter.registerAdapterDataObserver(new HeaderAdapterDataObserve(mAdapter));    }

#### HeaderAdapter:type定义 type_header:为-1往下递减

type_footer:为12以上递加
实现动态无限加入与删除

private final int TYPE_HEADER = -1;//从-1起始開始减    private final int TYPE_NORMAL = 0;//默认从0開始    private final int TYPE_NORMAL_ITEM_COUNT = 12;//任意取的值,确保装饰Adapter对象不会超过此界就可以    private final int TYPE_FOOTER = TYPE_NORMAL_ITEM_COUNT + 1;

 

还有更难实现的DynamicAdapter等

github地址:

假设你认为此文对您有所帮助。欢迎入群 QQ交流群 :232203809 微信公众号:终端研发部 

Markdown

(欢迎关注学习和交流)

转载于:https://www.cnblogs.com/lytwajue/p/7054203.html

你可能感兴趣的文章
Java基础(四) StringBuffer、StringBuilder原理浅析
查看>>
UVALive 4262——Trip Planning——————【Tarjan 求强连通分量个数】
查看>>
LinkedList简要分析
查看>>
纯PHP实现定时器任务(Timer)
查看>>
分类树操作
查看>>
如何下载 Chrome 应用商店的 .crx 文件
查看>>
利用GDI+ for.NET 给图片加水印标记
查看>>
【转载】 扫描二维码自动识别手机APP下载地址
查看>>
js 对url进行编码和解码的三种方式
查看>>
windows phone 扫描二维码
查看>>
ubuntu(linux)占领小米平板2(mipad2)
查看>>
【java】自定义异常类
查看>>
【Oracle】Oracle基本数据类型总结
查看>>
第四周学习进度条3
查看>>
Rsync的配置与使用
查看>>
程序员应注意——米勒法则
查看>>
深刻理解Python中的元类(metaclass)
查看>>
[转]java String的经典问题(new String(), String)
查看>>
.net Core使用RabbitMQ
查看>>
博客园博客转至个人网站博客声明
查看>>