最近想通过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);
}