总结一下,分为两种情况

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如下所示

收藏 打印