android.support.v4.app.Fragment.setUserVisibleHint()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(7.0k)|赞(0)|评价(0)|浏览(144)

本文整理了Java中android.support.v4.app.Fragment.setUserVisibleHint()方法的一些代码示例,展示了Fragment.setUserVisibleHint()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Fragment.setUserVisibleHint()方法的具体详情如下:
包路径:android.support.v4.app.Fragment
类名称:Fragment
方法名:setUserVisibleHint

Fragment.setUserVisibleHint介绍

[英]Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.

An app may set this to false to indicate that the fragment's UI is scrolled out of visibility or is otherwise not directly visible to the user. This may be used by the system to prioritize operations such as fragment lifecycle updates or loader ordering behavior.
[中]向系统设置一个提示,提示用户当前是否可以看到此片段的UI。此提示默认为true,并且在片段实例状态save和restore之间是持久的。
应用程序可能会将其设置为false,以指示片段的UI已滚动到不可见状态,或者用户无法直接看到。系统可以使用它来确定操作的优先级,例如片段生命周期更新或加载程序排序行为。

代码示例

代码示例来源:origin: TeamNewPipe/NewPipe

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  mIsVisibleToUser = isVisibleToUser;
}

代码示例来源:origin: aa112901/remusic

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    //相当于Fragment的onResume
  } else {
    //相当于Fragment的onPause
  }
}

代码示例来源:origin: aa112901/remusic

@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
  Fragment fragment = (Fragment)object;
  if (fragment != mCurrentPrimaryItem) {
    if (mCurrentPrimaryItem != null) {
      mCurrentPrimaryItem.setMenuVisibility(false);
      mCurrentPrimaryItem.setUserVisibleHint(false);
    }
    if (fragment != null) {
      fragment.setMenuVisibility(true);
      fragment.setUserVisibleHint(true);
    }
    mCurrentPrimaryItem = fragment;
  }
}

代码示例来源:origin: journeyapps/zxing-android-embedded

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (cameraPreview != null) {
    if (isVisibleToUser) {
      cameraPreview.resume();
    } else {
      cameraPreview.pauseAndWait();
    }
  }
}

代码示例来源:origin: bingoogolapple/BGARefreshLayout-Android

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isResumed()) {
    handleOnVisibilityChangedToUser(isVisibleToUser);
  }
}

代码示例来源:origin: journeyapps/zxing-android-embedded

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if(barcodeView != null) {
    if (isVisibleToUser) {
      barcodeView.resume();
    } else {
      barcodeView.pauseAndWait();
    }
  }
}

代码示例来源:origin: jiajunhui/PlayerBase

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if(hasInit){
    if(!getUserVisibleHint()){
      mListAdapter.reset();
    }
  }
}

代码示例来源:origin: bingoogolapple/BGASwipeBackLayout-Android

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isResumed()) {
    handleOnVisibilityChangedToUser(isVisibleToUser);
  }
}

代码示例来源:origin: aa112901/remusic

fragment.setUserVisibleHint(false);
mFragments.set(position, fragment);
mCurTransaction.add(container.getId(), fragment);

代码示例来源:origin: JZ-Darkal/AndroidHttpCapture

} else {
    transaction.hide(f);
    f.setUserVisibleHint(false);
getSupportFragmentManager().findFragmentByTag(to.getClass().getName()).setUserVisibleHint(true);

代码示例来源:origin: JZ-Darkal/AndroidHttpCapture

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    if (getActivity() instanceof MainActivity) {
      ((MainActivity) getActivity()).changeStateBar(this);
    }
    if (mBackHandledInterface != null) {
      //告诉FragmentActivity,当前Fragment在栈顶
      mBackHandledInterface.setSelectedFragment(this);
    }
  }
}

代码示例来源:origin: chentao0707/SimplifyReader

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    if (isFirstVisible) {
      isFirstVisible = false;
      initPrepare();
    } else {
      onUserVisible();
    }
  } else {
    if (isFirstInvisible) {
      isFirstInvisible = false;
      onFirstUserInvisible();
    } else {
      onUserInvisible();
    }
  }
}

代码示例来源:origin: JingYeoh/FragmentRigger

@Override
public void showFragment(@NonNull Fragment fragment, @IdRes int containerViewId, boolean showRepeatAnim) {
  String fragmentTAG = Rigger.getRigger(fragment).getFragmentTAG();
  if (mStackManager.add(fragmentTAG, containerViewId)) {
    addFragmentWithAnim(fragment, containerViewId);
  }
  String[] fragmentTags = mStackManager.getFragmentTags(containerViewId);
  for (String tag : fragmentTags) {
    Fragment hideFrag = mRiggerTransaction.find(tag);
    if (hideFrag == null) continue;
    hideFrag.setUserVisibleHint(false);
  }
  fragment.setUserVisibleHint(true);
  boolean hidden = fragment.isHidden();
  boolean added = fragment.isAdded();
  if (!added || hidden || showRepeatAnim) {
    mRiggerTransaction.hide(getVisibleFragmentTags(containerViewId));
    showFragmentWithAnim(fragment);
  }
  mRiggerTransaction.commit();
}

代码示例来源:origin: JingYeoh/FragmentRigger

@Override
public void addFragment(@IdRes int containerViewId, Fragment... fragments) {
  if (fragments == null) {
    Logger.w(mPuppetTarget, "the fragments to be added is null.");
    return;
  }
  for (Fragment fragment : fragments) {
    String fragmentTAG = Rigger.getRigger(fragment).getFragmentTAG();
    if (mStackManager.add(fragmentTAG, containerViewId)) {
      addFragmentWithAnim(fragment, containerViewId);
      mRiggerTransaction.hide(fragmentTAG);
    } else {
      throwException(new AlreadyExistException(fragmentTAG));
    }
    fragment.setUserVisibleHint(false);
  }
  mRiggerTransaction.commit();
}

代码示例来源:origin: eneim/toro

void setUserVisibleHint(boolean visible) {
  if (primaryItem != null) {
   primaryItem.setUserVisibleHint(visible);
   this.visible = null;
  } else {
   this.visible = visible;
  }
 }
}

代码示例来源:origin: eneim/toro

@Override public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (D) {
   Log.d(TAG, "setUserVisibleHint() called with: isVisibleToUser = [" + isVisibleToUser + "]");
  }
 }
}

代码示例来源:origin: eneim/toro

@Override public void setPrimaryItem(ViewGroup container, int position, Object object) {
 super.setPrimaryItem(container, position, object);
 if (object instanceof Fragment) primaryItem = (Fragment) object;
 if (primaryItem != null) {
  if (visible != null) {
   primaryItem.setUserVisibleHint(visible);
   visible = null;
  }
 }
}

代码示例来源:origin: dongjunkun/GanK

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    lazyFetchDataIfPrepared();
  }
}

代码示例来源:origin: bmarrdev/android-DecoView-charting

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  if (isVisibleToUser) {
    if (getView() != null) {
      setDemoFinished(false);
      createAnimation();
    }
  } else {
    stopFragment();
  }
}

代码示例来源:origin: chaychan/TouTiao

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);
  //setUserVisibleHint()有可能在fragment的生命周期外被调用
  if (rootView == null) {
    //如果view还未初始化,不进行处理
    return;
  }
  if (isFirstEnter && isVisibleToUser) {
    //如果是第一次进入并且可见
    onFragmentFirstVisible();//回调当前fragment首次可见
    isFirstEnter = false;//第一次进入的标识改为false
  }
  if (isVisibleToUser) {
    //如果不是第一次进入,可见的时候
    isFragmentVisible = true;
    onFragmentVisibleChange(isFragmentVisible);//回调当前fragment可见
    return;
  }
  if (isFragmentVisible) {
    //如果当前fragment不可见且标识为true
    isFragmentVisible = false;//更改标识
    onFragmentVisibleChange(isFragmentVisible);//回调当前fragment不可见
  }
}

相关文章

微信公众号

最新文章

更多

Fragment类方法