虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题

Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题
类别:Android编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了Android 中解决Viewpage调用notifyDataSetChanged()时界面无刷新的问题的相关资料,这里提供相应的解决办法,需要的朋友可以参考下

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);
    }
    }

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关热词搜索: Viewpager在调用notifyDataSetChanged()时