Android-ViewPager中调用notifyDataSetChanged失效问题--setItemPosition--POSITION_NONE
来源:互联网 发布:吉他品牌 知乎 编辑:程序博客网 时间:2024/05/22 03:39
最基本的方法:
针对于child view比较简单的情况(例如仅有TextView、ImageView等,没有ListView等展示数据的情况),可以在自己的Adapter中加入代码:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
这样既可达到一般情况下要求的效果。
存在的问题:
这不是PagerAdapter中的Bug,通常情况下,调用 notifyDataSetChanged方法会让ViewPager通过Adapter的getItemPosition方法查询一遍所有child view,这种情况下,所有child view位置均为POSITION_NONE,表示所有的child view都不存在,ViewPager会调用destroyItem方法销毁,并且重新生成,加大系统开销,并在一些复杂情况下导致逻辑问题。特别是对于 只是希望更新child view内容的时候,造成了完全不必要的开销。
更有效地方法:
更为靠谱的方法是因地制宜,根据自己的需求来实现notifyDataSetChanged的功能,比如,在仅需要对某个View内容进行更新时,在instantiateItem()时,用View.setTag方法加入标志,在需要更新信息时,通过findViewWithTag的方法找到对应的View进行更新即可。
0 0
- Android-ViewPager中调用notifyDataSetChanged失效问题--setItemPosition--POSITION_NONE
- 有关Viewpager 在pageAdapter中调用notifyDataSetChanged失效的问题
- 解决ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- 解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效问题
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- ViewPager.notifyDataSetChanged() 失效问题
- 有关ViewPager使用及解决ViewPager和PagerAdapter中调用notifyDataSetChanged失效问题
- ViewPager调用Adapter.notifyDataSetChanged()失效
- 关于BaseAdapter中notifyDataSetChanged 失效的问题
- 【android】从源码分析调用ViewPager的notifyDataSetChanged无刷新的问题及解决方法
- android之notifyDataSetChanged失效
- Android notifyDatasetChanged失效
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- 解决ViewPager调用notifyDataSetChanged()时,界面无刷新问题
- ViewPager中调用notifyDataSetChanged无刷新最终方案.
- ViewPager 调用 notifyDataSetChanged()无刷新
- 设置外部访问ubuntu虚拟机web服务的两种方法
- 用VC++编写MFC时,弹出“试图执行系统不支持的操作”
- hdu--1413
- Jsp+Model
- 机器学习大神 Michael I. Jordan推荐的书籍Machine Learning Books Suggested by Michael I. Jordan from Berkeley
- Android-ViewPager中调用notifyDataSetChanged失效问题--setItemPosition--POSITION_NONE
- fzu2125
- 关于iOS开发中info.plist文件的解读
- 从尾到头打印链表
- 大数据工程师:大数据的java基础 第六周
- struct
- 高效Android开发者必须知道的4个工具
- leetcode:Dungeon Game
- 第62课:SparkSQL下的Parquet使用最佳实践和代码实践学习笔记