Android BaseAdapter 更新数据 notifyDataSetInvalidated() notifyDataSetChanged()
来源:互联网 发布:淘宝客推广位是什么 编辑:程序博客网 时间:2024/05/17 08:03
请原谅这个问题现在才提出来,在一个fragment界面上需要在列表项展示好几行数据,需要根据网络通知,获取数据,重新更新listview里面的数据,那首先想到的是使用适配器BaseAdapter,相信很多朋友都可以从网上找到baseAdapter的详细讲解,我就不说了,说一下我用这个适配器遇到的问题:
问题1: 当网络数据发生变化,发送更新消息过来,这时候就需要更新数据,重新绑定数据源,我在数据变化时候,后面加上tableAdapter.notifyDataSetInvalidated();,的确是可以更新,但是遇到一个很大的问题就是当显示的列表很多,需要下拉到底,停在底部的时候,这时候数据发生变化,重新绘制listview,就会导致,列表跳到第一项,导致用户体验及其的不好,整个界面不停的跳动,这是无法容忍的,解决的办法:
public void fireTableDataChange() {
handler.post(new Runnable() {
@Override
public void run() {
// tableAdapter.notifyDataSetInvalidated();
tableAdapter.notifyDataSetChanged();//换成这个方法之后,就不会出现数据更新界面太跳
}
});
}
分析原因如下:
1:如果要刷新的数据源改变了就调用notifyDataSetChanged ()例如:我们在新浪微博中,要进行分显示刷新微博;
2:如果那个数据源失效了之后就 调用notifyDataSetInvalidated()
另一位的见解:
notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域
Android BaseAdapter 更新数据 notifyDataSetInvalidated() notifyDataSetChanged()
- Android BaseAdapter 更新数据 notifyDataSetInvalidated() notifyDataSetChanged()
- BaseAdapter 的notifyDataSetInvalidated 和notifyDataSetChanged
- Android中notifyDataSetInvalidated()和notifyDataSetChanged()
- notifyDataSetInvalidated notifyDataSetChanged
- notifyDataSetInvalidated , notifyDataSetChanged
- notifyDataSetInvalidated notifyDataSetChanged
- android listview notifyDataSetChanged更新数据
- android-----notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
- Android中notifyDataSetInvalidated()和notifyDataSetChanged()的区别
- Android BaseAdapter notifyDataSetInvalidated()使用思考
- android PagerAdapter notifyDataSetChanged() 无法更新数据问题解决
- notifyDataSetChanged();和notifyDataSetInvalidated();
- 34notifyDataSetInvalidated()和notifyDataSetChanged()
- notifyDataSetInvalidated、notifyDataSetChanged 区别
- notifyDataSetChanged() 和 notifyDataSetInvalidated()
- notifyDataSetChanged和notifyDataSetInvalidated区别
- 关于BaseAdapter的notifyDataSetChanged()方法无法更新list数据的研究
- Android中notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
- ZigBee帧结构汇总(应用层(APS)、网络层(NWK),MAC层,物理层(PHY))
- hdu 1403 Longest Common Substring(求公共子串长度)
- iOS应用如何跳转到设置界面
- 常见第三方库及其功能简介
- div+css3做的小图标
- Android BaseAdapter 更新数据 notifyDataSetInvalidated() notifyDataSetChanged()
- hive的数据类型和数据模型
- Android中SMS的接收处理
- 决策树,随机森林,boost小结
- java动态缓存成长小纪(三)——缓存大小估算
- 【初级】VS2015/MFC设置工具栏按钮提示
- CentOS / Redhat 上的 Iptables 防火墙配置简介
- android抽屉实现
- SqlClr:创建一个简单的表值函数