(一) 自带刷新的列表-LtRecyclerView v2.x版本(LtAdapter)(基本使用)
(一) 超简单自定义上下刷新布局-LtRecyclerView v2.x版本(基本使用)
(二) LtRecyclerView v2.x (更多实用方法)
(三) LtRecyclerView v2.x (自定义刷新View)
LtRecyclerView2.x版本比1.x版本多了几个好用的功能,很实用
总体功能:
- 带有上拉加载和下拉刷新和回调
- 设置条目点击事件和条目长按事件
- 添加头布局和尾布局
- 添加没条目时展示的View(或者添加没条目和有条目时的回调事件)
- 添加分割线(也可以用图片)
- 自定义上拉加载的View
- 自定义下拉刷新的View(包括RecyclerView移动和不移动),而且非常简单
- 仅需修改一行代码即可更改所有的刷新View
- 可单独使用下拉刷新View
图示:
:
使用:
远程仓库引用:
在根项目的build.gradle文件中加入:
allprojects {repositories {
...maven { url 'https://jitpack.io' }}
}
需要添加的地方加入:
implementation 'com.github.ltttttttttttt:ltviews:2.8.0'//androidx
//下面的是support包中的,已被废弃,全面改用androidx包
implementation 'com.github.ltttttttttttt:ltviews:2.3.9'//android support 以后不再进行更新
正式使用
3.xml布局文件中:
<com.lt.ltviews.lt_recyclerview.LTRecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent"app:dividerHeight="1dp" //设置分割线的高度,默认颜色是#d5d5d5app:noItemText="暂无数据" //设置没有数据时展示的文字 />
在Application的onCreate中:
LtRecyclerViewManager.INSTANCE.init(this);
4.java代码使用示例,只需要set一个适配器和加一个加载的回调即可
rv = (LTRecyclerView) findViewById(R.id.rv);//创建一个适配器LtAdapter adapter = new LtAdapter() {@Overridepublic RecyclerView.ViewHolder onLtCreateViewHolder(ViewGroup parent, int viewType) {//在这里返回一个ViewHolder,构造里放需要展示的Viewreturn new RecyclerView.ViewHolder(new TextView(getApplicationContext())) {};}@Overridepublic int getLtItemCount() {//适配器展示多少条数据return 100;}@Overridepublic void onLtBindViewHolder(RecyclerView.ViewHolder holder, int position) {//给View设置数据((TextView) holder.itemView).setText("" + position);}};adapter.setOnRvItemClickListener(new OnRvItemClickListener() {@Overridepublic void onItemClick(View itemView, int position) {//条目的点击事件}});rv.setAdapter(adapter).setOnUpAndDownListener(new OnUpAndDownListener() {@Overridepublic void up() {//上拉加载时的回调}@Overridepublic void down() {//下拉刷新时的回调}});//设置每行有多少个条目,默认是1rv.setSpanCount(3);
5.设置刷新状态的方法
rv.setTopRefresh(false);//设置是否下拉刷新rv.setBottomRefresh(false);//设置是否上拉加载rv.notifyDataSetChanged();//刷新数据源(更新条目)
6.Kotlin加持适配器(使用Kotlin语言可用),现在已经封装进来,ps:最新版封装的kt适配器文章:https://blog.csdn.net/qq_33505109/article/details/102916599
继承BaseLtAdapterOneType或BaseLtAdapterOneType使用
class MAdapter(list: ArrayList<InfoBean>) : BaseLtAdapterOneType<InfoBean>(list, item_layout的id) {override fun setData(h:BaseLtViewHolder, b: InfoBean, i: Int) {h.tvTitle.text=b.title//直接使用item的view内的id,然后使用bean类的属性赋值,i为position,h为viewholder(为了简单写,所以都用了单个字母的简写)//使用该功能需要在对应的model的gradle的android{}中加入下面代码,老版的最大版本为2.7.0(已不再维护老版本,因为性能没有这个高)// androidExtensions {// experimental = true// }}
}
甚至可以直接这样快捷使用适配器,这么两行就相当于条目4里java代码里的一堆
rv.adapter = ltAdapterOf(mutableListOf(""), 0) {h, b, i -> }
混淆
-keep class com.lt.ltviewsx.** { *;}
7.更多api和自定义放在下篇和下下篇文章(点击查看(二)更多实用方法)
该控件已开源,Github地址:https://github.com/ltttttttttttt/ltviews
若有bug可以提出来
转载请带上本文链接,谢谢
(一) 自带刷新的列表-LtRecyclerView v2.x版本(LtAdapter)(基本使用)相关推荐
- (三) LtRecyclerView v2.x (自定义上拉和下拉刷新View)
(一) 超简单自定义上下刷新布局-LtRecyclerView v2.x版本(基本使用) (二) LtRecyclerView v2.x (更多实用方法) (三) LtRecyclerView v2. ...
- (二) LtRecyclerView v2.x (更多实用方法)
(一) 超简单自定义上下刷新布局-LtRecyclerView v2.x版本(基本使用) (二) LtRecyclerView v2.x (更多实用方法) (三) LtRecyclerView v2. ...
- python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...
python里有一个列表,列表里有几个小列表,小列表#冒泡排序:scoreList = [['a',98],['c',45],['b',70],['d',85],['h',85],['f',92],[ ...
- AjaxPro无刷新选择列表框/下拉框[方便|稳定]
前言 看到网上很多关于ASP.NET的无刷新选择列表框,服务器端有的返回DataSet,有的返回DataView,有的用分隔符拼接一个长字符串返回,相应的客户端解析也是各有不同.DataSet+ ...
- V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
大家好!我是 Guide 哥!V2.0 版本的 <JavaGuide面试突击版>来啦,带着它的在线阅读版本来啦! 历史更新查看: 完结撒花!JavaGuide面试突击版来啦! V1.1版J ...
- 优雅地实现一个高效、异步数据实时刷新的列表
今日科技快讯 2月11日消息,据CNBC报道,当特斯拉公司于2019年1月宣布第二轮裁员以控制成本时,一个关键部门受到的打击尤为沉重.两名被裁汰的员工表示,负责向北美地区客户交付Model 3电动汽车 ...
- python权重是什么意思_在python带权重的列表中随机取值的方法
1 random.choice python random模块的choice方法随机选择某个元素 foo = ['a', 'b', 'c', 'd', 'e'] from random import ...
- html中列表前面的序号带圆圈,js动态添加带圆圈序号列表方法
js动态添加带圆圈序号列表方法 发布时间:2021-02-19 11:30:34 来源:亿速云 阅读:69 作者:小新 这篇文章给大家分享的是有关js动态添加带圆圈序号列表方法的内容.小编觉得挺实用的 ...
- 分析RM970 固件V2.5版本的图片文件列表
--在RM970的早期固件版本中,我们是可以按照自己的意愿对其进行固件美化的,网上有很多这方面的教程.(例如:http://bbs.romman.net/thread-112858-1-1.html) ...
最新文章
- 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
- [转]使用rosbridge协议实现安卓跟ros的解耦
- 数据库索引的作用和长处缺点
- IET Cyber-Systems Robotics线上研讨会:聚焦人工智能与机器人前沿
- nsfocus 十周年了 时间过得好快啊... 恭喜下...
- 深入mysql慢查询设置的详解
- JavaScript如何来实现面向对象的核心封装,继承,多态
- aspx页面中文汉字显示为乱码
- 简单的Spring配置文件
- 教你快速录制gif动图
- 十大在线编程学习网站
- tyvj 1463 智商问题
- 《计算机网络:自顶向下方法(原书第七版)》 参考答案(英文版+中文版)
- 《PyTorch 深度学习实践》第10讲 卷积神经网络(基础篇)
- 京东口罩到货,邮件实时通知
- Python爬虫新手教程:微医挂号网医生数据抓取
- doc格式批量转docx
- 上台演讲怎么做?这篇文章告诉你
- Markdown Graph
- maven生成html单元测试报告,Maven中配置生成单元测试报告配置
热门文章
- F5 BIG-IP 远程代码执行漏洞 CVE-2021-22986 虚拟机上复现
- 【毕业求职季】-听说你想去大厂看学妹,带你看看腾讯微信产品岗面经(已offer)
- Cannot load 32-bit SWT libraries on 64-bit JVM
- numpy.ones() 详解
- 解决报错OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
- mac下dashboard小控件开发实例(附源码)
- 《京东技术解密》——海量订单处理
- 老信贷总结:贷款催收技巧和注意事项
- 金融风控实战——迁移学习
- 【风险管理】系统技术框架