notifyDataSetInvalidated()跟notifyDataSetChanged()的区别
public void notifyDataSetChanged():
通过一个外部的方法控制,如果适配器的内容改变了,那么就会强制调用getView来刷新每个Item的内容。这个方法内部实现了在每个观察者上面调用onChanged事件,每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。
public void notifyDataSetInvalidated ():
这个方法内部实现了在每个观察者上面调用onInvalidated事件,每当发现数据集监控有改变的情况,比如该数据集不再有效,就会调用此方法。
Listview刷新功能,之前解决都是给Listview重新赋上adapter,这样Listview就滚动到第一条了,但是这样会有些耗内存,代码看起来也不美观。
以下时最主要的区别:
notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域
notifyDataSetInvalidated()跟notifyDataSetChanged()的区别的更多相关文章
- notifyDataSetInvalidated和notifyDataSetChanged有什么区别
notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容.public void notifyDataSetChang ...
- Android中notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
看下源码中对于这两个方法 public void notifyDataSetChanged () 该方法内部实现了在每个观察者上面调用onChanged事件.每当发现数据集有改变的情况,或者读取 ...
- HorizontalListView中使用notifyDataSetChanged()和notifyDataSetInvalidated()
今天在项目中用到了水平ListView控件HorizontalListView,也是我在网上找的个开源HorizontalListView直接在项目中使用.我是把HorizontalListView放 ...
- 小生经验贴 --- adapter的数据更新
如果你的UI是GridView ListView等需要用到adapter添加数据的控件 那么有时候里面的数据改变了 List<>内容改变了 那就要更新数据 关于adapter的数据更新 a ...
- Android编程心得-ListView的Item高亮显示的办法
在我们使用ListView的时候,经常会遇到某一项(Item)需要高亮显示的情况,如下图,有人说当我们点击子项的时候会变亮,但有时候业务逻辑需要让ITEM根据条件自动变亮,下面我来介绍一下我自己的解决 ...
- [转]Android ListView的Item高亮显示的办法
本文转自:http://www.cnblogs.com/dyllove98/archive/2013/07/31/3228601.html 在我们使用ListView的时候,经常会遇到某一项(Item ...
- [项目总结]论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因
最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notif ...
- Adapter.notifyDataSetChanged()源码分析以及与ListView.setAdapter的区别
一直很好奇,notifyDataSetChanged究竟是重绘了整个ListView还是只重绘了被修改的那些Item,它与重新设置适配器即调用setAdapter的区别在哪里?所以特地追踪了一下源码, ...
- ListView列表刷新方法的区别
ListView列表刷新方法的区别 ListView对象的刷新方法: listNote.invalidate();重绘所有组件listNote.invalidateViews();重绘组件[包含所有的 ...
随机推荐
- C#带小括号的运算
计算类的封装 jisuan.cs using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 5----table类型
table类型是非常重要的Lua数据类型,也是Lua唯一能描述数据结构的类型 table类型可以很灵活的描述多种数据结构,其本身是基于键值对的形式存储数据的 字典结构 字典结构的table 的两种创建 ...
- 06-scanf函数
本文目录 变量的内存分析 scanf函数 回到顶部 一. 变量的内存分析 1. 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”. 1> 内存以“字节为单 ...
- android通过HttpClient与服务器JSON交互
通过昨天对HttpClient的学习,今天封装了HttpClient类 代码如下: package com.tp.soft.util; import java.io.BufferedReader; i ...
- iOS Build Setting证书设置
发布的用distribution debug的用development, debug是调试模式, 除非需要日志, 内部测试的时候, 才要debug模式的. release的用distribution
- Python之SQLAlchemy学习--外键约束问题
以下问题赞为解决: # class User(Base):# __tablename__ = 'user'# #表的结构# id = Column(String(20), primary_key=Tr ...
- Instuments工具
最近一直在研究IOS在多语言环境下的自动化测试,其中一个重大的问题就是如何在自动化测试的时候能够自动切换语言, 比如某个软件支持10个国家的语言,如果不能自动的切换语言,那么在测试的过程中就需要手动切 ...
- mysql 命令(一)
1. 函数向日期添加指定的时间间隔 DATE_ADD(date,INTERVAL expr type)eg:DATE_ADD(CURDATE(),INTERVAL 1 MONTH) //在当前时间加一 ...
- JQuery Datatables Dom 和 Language 参数详细说明
http://linleizi.iteye.com/blog/2086435 *********************************** Data Tables: http://datat ...
- jquery checkbox勾选/取消勾选的诡异问题
<form> 你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br ...