android view 是否显示,【Android】如何判断一个fragment是否显示

总结一下,分为两种情况

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值