总结一下,分为两种情况

1.在viewpager中添加的fragment

//判断是否正在显示

protected boolean isVisible;

@Override

public void setUserVisibleHint(boolean isVisibleToUser) {

super.setUserVisibleHint(isVisibleToUser);

if(isVisibleToUser){

isVisible = true;

}else{

isVisible = false;

}

}

重写fragment的setUserVisibleHint方法即可,通过 isVisibleToUser参数来判断是否显示

2.通过Hide or Show 方法设置的fragment

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

if (currentFragment != null) {

transaction.hide(currentFragment);

}

if (!fragment.isAdded()) {

transaction.add(R.id.main_container, fragment);

}

transaction.show(fragment);

transaction.commitAllowingStateLoss();

重写这三个方法,当fragment初始化时候,调用了onAttach方法,之后通过onHiddenChanged方法来判断是否隐藏

@Override

public void onAttach(Activity activity) {

super.onAttach(activity);

XLog.d(getClass().getName() + " visible onAttach");

}

@Override

public void onDetach() {

super.onDetach();

XLog.d(getClass().getName() + " visible onDetach");

}

@Override

public void onHiddenChanged(boolean hidden) {

XLog.d(getClass().getName() + " visible onHiddenChanged hidden = "+ hidden);

super.onHiddenChanged(hidden);

}

12-18 20:23:44.389 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onAttach

12-18 20:23:58.296 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onDetach

12-18 20:24:06.513 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onAttach

12-18 20:24:08.375 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = true

12-18 20:24:13.028 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = false

12-18 20:24:17.594 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = true

12-18 20:24:19.505 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = false

12-18 20:24:24.668 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = true

12-18 20:24:26.132 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = false

12-18 20:24:27.473 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = true

12-18 20:24:27.943 24014-24014/com.comic.comicmo D/ComicMeo: │ com.comic.comicmo.online.ui.main.mine.MineFragment visible onHiddenChanged hidden = false

打印的LOG如下所示

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐