fragment setUserVisibleHint onHiddenChanged方法



调用 hide show 方法是,下面的方法会调用

if (currentFragment != to) {
currentFragment = to;
FragmentTransaction transaction = mFragmentMang.beginTransaction();
// FragmentTransaction transaction = getSupportFragmentManager().beginTransaction().setCustomAnimations(
// android.R.anim.fade_in, R.anim.slide_out);
if (!to.isAdded()) {    // 先判断是否被add过
UtilsLog.d();
transaction.hide(from).add(R.id.fragment_container, to, fragmentag).commitAllowingStateLoss(); // 隐藏当前的fragment,add下一个到Activity中
} else {
UtilsLog.d();
transaction.hide(from).show(to).commitAllowingStateLoss(); // 隐藏当前的fragment,显示下一个
}
}

/**
 * fragment hide or show
 * true means hide else false
 */
@Override
public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
}

当fragment结合viewpager使用时 下面的方法会调用,而上面的方法不会调用?

/** Fragment当前状态是否可见 */
protected boolean mCurFragmentisVisible = false;

//setUserVisibleHint是在onCreateView之前调用的
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (getUserVisibleHint()) {
        mCurFragmentisVisible = true;
        onFragmentVisible();
    } else {
        mCurFragmentisVisible = false;
        onFragmentInvisible();
    }
}

/**
 * Fragment可见
 */
protected void onFragmentVisible() {
    onLazyLoad();
}

/**
 * Fragment不可见
 */
protected void onFragmentInvisible() {

}

















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android西红柿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值