Viewpage调用notifyDataSetChanged() Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题
大圣代 人气:0想了解Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题的相关内容吗,大圣代在本文为您仔细讲解Viewpage调用notifyDataSetChanged()的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Viewpager在调用notifyDataSetChanged()时,Android,Viewpager无刷新的问题,下面大家一起来学习吧。
Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题
问题描述
相信很多做过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); } }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
加载全部内容