Fragment界面莫名其妙自动刷新

原创 2017年09月13日 21:33:26

最近项目中遇到了一个奇怪的问题:

假设我打开一个鞋子列表页面,我不断往下滑动查看喜欢的鞋子(比如是第20双鞋子,),当我点进去跳转新页面在查看完该鞋子详情之后再关闭就会发现我又回到了第1双鞋子的位置而不是第20双鞋子的位置。

我的项目采用的是ViewPager+Fragment,其他的页面都没有出问题,单单就是这个页面出问题,所以我就研究了这个页面的代码和其他页面代码的不同之处,惊讶发现:

@Override
    public void onResume() {
        super.onResume();
        adapter.notifyDataSetChanged();//罪魁祸首就是他
    }

这段代码的意思是每次与此页面需要交互的时候都要刷新数据,当时理解的不深刻

  /**
     * This method should be called by the application if the data backing this adapter has changed
     * and associated views should update.
     */
    public void notifyDataSetChanged() {
        synchronized (this) {
            if (mViewPagerObserver != null) {
                mViewPagerObserver.onChanged();
            }
        }
        mObservable.notifyChanged();
    }

通过源码我们可以看到关联的视图和数据都会被刷新,这样就解释了为什么关闭子页面的时候不能恢复到之前页面的状态了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Git命令总结

创建版本库 git init git add README.md git commit -m “first commit” git remote add origin your...

Android RecyclerView详解以及滑动删除等

本文RecyclerViewDemo RecyclerView三种自带布局 本文图片接口来自干货集中营http://gank.io/api RecyclerView是supp...

ViewPage+Fragment 懒加载+只加载一次 SwipeRefreshLayout自动刷新

之前发表了一次,不知道怎么了找不到。重新发一次 因为ViewPager+Fragment加载时启动的方法有些复杂,所以单纯的setUserVisibleHint并不能去执行。 在这段代码中...

外部Activity跳转回Fragment和PullToRefreshListView的自动刷新问题

需求:就是从Activity里的一个fragment跳出到另外一个Activity里,当返回的时候要求fragment里的listview实现自动刷新的功能。 首先解决的是当从外部返回到Activ...

ExtJs4.2 登陆界面(点击验证码自动刷新,label实现click事件)

ExtJs4.2 登陆界面(点击验证码自动刷新,label实现click事件)
  • qiu_11
  • qiu_11
  • 2015年01月11日 01:00
  • 5552

利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果

前言最近在学习下拉刷新的过程中,遇到了一个需求:实现一个图书馆藏的首页推荐页,为了追求良好的用户体验,要求刚进入页面时就开始刷新,如下图: 为了实现这个效果使用了SwipeRefreshLayo...

JavaFX中使用ObservableList,数据改变时自动刷新界面(ObservableList改变的一个小陷阱)

Populating a ListView A simple example of how to create and populate a ListView of names (Strings) ...

ListView实现下拉刷新(第一次打开listView的界面进行自动刷新)和上拉加载更多

前言:距离上次写博客已经是3~4个月之前了,这中间有写了一篇论文,完成公司分配的任务。。。。但这并不是“三天打鱼,4个月晒网”的理由,所以在以后会时刻提醒自己,坚持来总结自己的学习心得,好了废话不多说...

js + ajax实现自动刷新界面或局部刷新

最近在做一个网站,需要用到实时刷新,于是就学习了一下有关资料,跟大家share一下。 1)其实刷新不用js也可以实现。单纯的html可以用meta标签搞定 //表示间隔10秒后刷新,即打开...
  • scrawlor
  • scrawlor
  • 2013年09月09日 11:48
  • 10071

js实现iframe的自动刷新

简单框架’js刷新iframeone=function(){ifrmid.window.location.reload()}setTimeout("one()",60000)'5秒钟自动刷新...
  • cyforce
  • cyforce
  • 2011年01月20日 23:40
  • 18037
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Fragment界面莫名其妙自动刷新
举报原因:
原因补充:

(最多只允许输入30个字)