首页 > 其他分享 >RecyclerView与ListView区别

RecyclerView与ListView区别

时间:2024-04-11 14:01:06浏览次数:15  
标签:动画 缓存 区别 item 刷新 ListView RecyclerView

目录

1.先说结论

2.继承关系

3.布局操作

4.动画效果

5.数据刷新方式

6.缓存机制

6.1 ListView

6.2 RecyclerView缓存实例


1.先说结论

RecyclerView是我们优先考虑的,已经规范化的,自带动画效果的,布局更多样的控件

2.继承关系

ListView-》继承BaseAdapter,需要自定义ViewHolder与优化converView

RecyclerView-》继承RecyclerView.Adapter和ReclerView.Holder

 

因此RecyclerView编写更规范

RecyclerView复用item能直接全完成,而ListView还需Tag值

3.布局操作

ListView只支持单一的纵向布局

RecyclerView支持线性布局(横向和纵向),表格布局和瀑布流布局

4.动画效果

在RecyclerView中,内置有许多动画API,例如:notifyItemChanged();

也可以自定义动画效果,

但是ListView并没有实现动画效果,但我们可以在Adapter自己实现item的动画效果;

5.数据刷新方式

ListView 刷新调用 notifyDataSetChanged() ,全局刷新数据 (每个 Item 数据会重新加载)

RecyclerView 支持局部刷新

其实ListView也可以局部刷新,不过要手动去Adapter中,实现一个onItemChanged()方法,在方法里面获取到这个item的position

6.缓存机制

ListView和RecyclerView最大的区别在于数据源改变时的缓存的处理逻辑:

        ListView是”一锅端”,将所有的mActiveViews都移入了二级缓存mScrapViews                          RecyclerView是灵活地对每个View修改标志位,区分是否重新bindView

6.1 ListView

6.2 RecyclerView缓存实例

item02数据源改变,

而其他item不变,算添加上去的,放临时空间

标签:动画,缓存,区别,item,刷新,ListView,RecyclerView
From: https://blog.csdn.net/m0_74837900/article/details/137635809

相关文章

  • Vue2和Vue3的区别
    ①双向数据绑定的原理发生变化Vue2利用defineproperty为每个对象的属性添加监听器,当属性发生变化的时候,自动更新对应的DOM元素  Vue3使用proxy代理技术,代替之前的define方式,代理对象data的所有修改工作Proxy的优势①defineProperty只能监听某个属性,不能对全对象监听②......
  • CLOCK_MONOTONIC 与 CLOCK_REALTIME 区别
    CLOCK_MONOTONIC指的是monotonictime,而CLOCK_REALTIME指的是walltime。monotonictime的字面意思是单调时间,实际上,指的是系统启动之后所流逝的时间,这是由变量jiffies来记录的,当系统每次启动时,jiffies被初始化为0,在每一个timerinterrupt到来时,变量jiffies就加上......
  • VB中DirectCast和CType的区别及使用
    DirectCast:主要用于执行明确的类型转换,只能在编译时确定类型关系时使用。如果转换不是有效的,则会引发异常。如果你要把一个Object变量用DirectCast转换成String,必须确定这个变量确实包含一个String(或者为Nothing).如果它包含一个Integer之类的东西,会抛出一个异常......
  • sort和sorted的区别使用
    l=list(map(int,input().split()))b=sorted(l,reverse=False)#reverse=True是降序,False是降序print(b)#sorted()函数是将一个排好序的列表赋给另一变量a.sort(reverse=False)#用法和sorted一样#只不过sort函数直接将列表进行排序不能赋给其他列表在代码里我们可以在注释里......
  • 开启mmu后,call和jalr的区别
    在我写虚拟内存时遇到一些问题,jalrt0就是可以的,而callmain则没办法成功而且这里默认main是偏移前的地址,怪哉!!!让我们看看jalr和call(伪指令!!!)然后在链接后看看main的地址,主要看程序中main是不是偏移悬着的心也死了!!!查看一下ucore也有类似的问题,看看他们怎么解释  太......
  • 说说你对数据结构的理解?有哪些?区别?
    一、是什么数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合前面讲到,一个程序=算法+数据结构,数据结构是实现算法的基础,选择合适的数据结构可以带来更高的运行或者存储效率数据元素相互之间的关系称为结构,根据数据元素之间关系的......
  • Debug和Release的区别
    Debug调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息;Release发布版本,不对......
  • 【深入理解Java IO流0x07】搞懂Java中的三种IO模型的区别:BIO & NIO & AIO
    1.引言NIO这一块是面试时比较喜欢问的问题,所以我们需要仔细学习。但是在直接讲NIO之前,需要大家对Java的IO模型首先有一个整体的认识,这样才方面后续我们深入探究NIO。我们接下来就开始吧!2.IO何为IO?I/O(Input/Outpu)即输入/输出。我们先从计算机结构的角度来解读一下......
  • php常见的输出语句及相互之间的区别
    常见的输出语句echo(): 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(languageconstruct),而并不是真正的函数,因此不能作为表达式的一部分使用。print(): 函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。print_r(): 可以把字符串......
  • session与cookie的区别?
    1、cookie数据存放在第三方应用的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE,进行COOKIE欺骗,考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当......