viewpage+fragment的生命周期问题

来源:互联网 发布:阿里人工智能 编辑:程序博客网 时间:2024/06/06 09:42

最近想通过viewpager+fragment来实现类似于手机淘宝里面我的订单功能:

在这里面,我每次点击相关viewpager的导航时,实现如下功能:

1:显示一个progressDialog。

2:从网络上加载最新数据,加载完成后关闭progressDialog,显示数据或者先(显示没有相关数据)。

3:屏蔽预加载功能。

个人想法:每次fragement显示时加载数据,即:在fragment的onresume()中执行上述两个功能。因为在onresume()方法是在界面显示的时候调用的方法。然而理想很美好,现实很残酷啊!!!!

在viewpager+fragment的模型中,我们知道,当我们显示第一个界面的时候,会预加载第二个界面的信息,本以为,只是实现oncreateview方法,。。。但是,实际告诉我们,onresume()方法居然也执行了!!!!!!

那么我们如何才能判定当前界面已经显示了呢。

小白一个,通过百度,发现在fragment里面有setUserVisibleHint()这个方法,愉快的使用了。。

@Override    public void setUserVisibleHint(boolean isVisibleToUser) {        if (this.isVisible()) {            // we check that the fragment is becoming visible            if (isVisibleToUser && !mHasLoadedOnce && mArrayList==null) {                                                 // async http request here                mHasLoadedOnce = true;            }        }        super.setUserVisibleHint(isVisibleToUser);    }




1 0