此文章作废,大家可以看新文章:
Android 再次探究Fragment在各种情况下的onResume与onPause
·
·
·
·
·
如果你的Fragment切换是replace方法,那就可以无视这个文章了,如果是显示隐藏,可以参考下
有的时候我们需要在当前fragment显示的时候重新加载数据,按照Activity的思路是在onResume()方法里面实现,但是Fragment虽然有这个方法,但是我们打印log会发现只是在Fragment加载的时候走这个方法了,但是显示隐藏都不会走这个方法,所以,我们需要寻找真正的onResume()方法
Fragment有两种情况,单独Fragment和与ViewPager结合使用,方法也不一样
单独Fragment使用时:
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
//不在最前端显示
LogUtils.e("--------Fragment 不在最前端显示");
} else {
//重新显示到最前端
LogUtils.e("--------Fragment 重新显示到最前端" );
}
}
与ViewPager结合使用时:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume
LogUtils.e("--------Fragment 重新显示到最前端" );
} else {
//相当于Fragment的onPause
LogUtils.e("--------Fragment 不在最前端显示" );
}
}