解决Viewpager在调用notifyDataSetChanged()时,界面无刷新的问题
2017-03-04 15:12
316 查看
问题描述
相信很多做过Viewpager的人肯定遇到过这个问题,这个是bug还是android就是如此设计的,我们不做讨论。总之,它确实影响我们功能的实现了。可能不少同学选择为Viewpager重新设置一遍适配器adapter,达到刷新的目的。但是这种方法在大多数情况下,是有问题的。
解决办法
以我们可以尝试着修改适配器的写法,覆盖getItemPosition()方法,当调用notifyDataSetChanged时,让getItemPosition方法人为的返回POSITION_NONE,从而达到强迫viewpager重绘所有item的目的。具体代码如下:
class SearchAdapter extends PagerAdapter { private int mChildCount = 0; @Override public void notifyDataSetChanged() { mChildCount = getCount(); super.notifyDataSetChanged(); } @Override public int getItemPosition(Object object) { if ( mChildCount > 0) { mChildCount --; return POSITION_NONE; } return super.getItemPosition(object); } }
相关文章推荐
- 【android】从源码分析调用ViewPager的notifyDataSetChanged无刷新的问题及解决方法
- 解决Viewpager在调用notifyDataSetChanged()时,界面无刷新,
- 解决ViewPager调用notifyDataSetChanged()时,界面无刷新问题
- 解决ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- 解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效问题(转)
- (4.3.1.18)解决ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题
- 解决ViewPager+fragment预加载问题(getItem()两次调用)
- ViewPager预加载问题和onCreateView多次调用问题的解决
- ViewPager添加ListView时出现多层ListView嵌套 界面错乱问题解决
- 解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效问题
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- ViewPager预加载问题和onCreateView多次调用问题的解决
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
- viewPagerFragment的子fragment的onActivityResult()无法执行调用问题解决方案
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决双ViewPager嵌套的事件分发和去掉viewpager滑动问题