本文整理了Java中android.support.v4.app.Fragment.setRetainInstance()
方法的一些代码示例,展示了Fragment.setRetainInstance()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Fragment.setRetainInstance()
方法的具体详情如下:
包路径:android.support.v4.app.Fragment
类名称:Fragment
方法名:setRetainInstance
[英]Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated:
代码示例来源:origin: facebook/facebook-android-sdk
protected Fragment getFragment() {
Intent intent = getIntent();
FragmentManager manager = getSupportFragmentManager();
Fragment fragment = manager.findFragmentByTag(FRAGMENT_TAG);
if (fragment == null) {
if (FacebookDialogFragment.TAG.equals(intent.getAction())) {
FacebookDialogFragment dialogFragment = new FacebookDialogFragment();
dialogFragment.setRetainInstance(true);
dialogFragment.show(manager, FRAGMENT_TAG);
fragment = dialogFragment;
} else if (DeviceShareDialogFragment.TAG.equals(intent.getAction())) {
DeviceShareDialogFragment dialogFragment = new DeviceShareDialogFragment();
dialogFragment.setRetainInstance(true);
dialogFragment.setShareContent((ShareContent) intent.getParcelableExtra("content"));
dialogFragment.show(manager, FRAGMENT_TAG);
fragment = dialogFragment;
} else {
fragment = new LoginFragment();
fragment.setRetainInstance(true);
manager.beginTransaction()
.add(R.id.com_facebook_fragment_container, fragment, FRAGMENT_TAG)
.commit();
}
}
return fragment;
}
代码示例来源:origin: grandcentrix/ThirtyInch
/**
* Don't use <code>setRetainInstance(true)</code>, it's designed for headless Fragments only.
*/
@Override
public void setRetainInstance(final boolean retain) {
if (retain) {
throw new IllegalStateException("Retaining TiFragment is not allowed. "
+ "setRetainInstance(true) should only be used for headless Fragments. "
+ "Move your state into the TiPresenter which survives recreation of TiFragment");
}
super.setRetainInstance(retain);
}
代码示例来源:origin: JessYanCoding/ArmsComponent
@Override
public void onFragmentCreated(FragmentManager fm, Fragment f, Bundle savedInstanceState) {
Timber.i(f.toString() + " - onFragmentCreated");
// 在配置变化的时候将这个 Fragment 保存下来,在 Activity 由于配置变化重建时重复利用已经创建的 Fragment。
// https://developer.android.com/reference/android/app/Fragment.html?hl=zh-cn#setRetainInstance(boolean)
// 如果在 XML 中使用 <Fragment/> 标签,的方式创建 Fragment 请务必在标签中加上 android:id 或者 android:tag 属性,否则 setRetainInstance(true) 无效
// 在 Activity 中绑定少量的 Fragment 建议这样做,如果需要绑定较多的 Fragment 不建议设置此参数,如 ViewPager 需要展示较多 Fragment
f.setRetainInstance(true);
}
代码示例来源:origin: noterpopo/Hands-Chopping
@Override
public void onFragmentCreated(FragmentManager fm, Fragment f, Bundle savedInstanceState) {
// 在配置变化的时候将这个 Fragment 保存下来,在 Activity 由于配置变化重建是重复利用已经创建的Fragment。
// https://developer.android.com/reference/android/app/Fragment.html?hl=zh-cn#setRetainInstance(boolean)
// 在 Activity 中绑定少量的 Fragment 建议这样做,如果需要绑定较多的 Fragment 不建议设置此参数,如 ViewPager 需要展示较多 Fragment
f.setRetainInstance(true);
}
});
代码示例来源:origin: com.uphyca/android-junit4-robolectric
/**
* @param retain
* @see android.support.v4.app.Fragment#setRetainInstance(boolean)
*/
public void setRetainInstance(boolean retain) {
mFragment.setRetainInstance(retain);
}
代码示例来源:origin: alirezaafkar/SunDatePicker
void switchFragment(Fragment fragment) {
fragment.setRetainInstance(this.getRetainInstance());
getChildFragmentManager()
.beginTransaction()
.replace(R.id.frame_container, fragment)
.commit();
updateDisplay();
}
内容来源于网络,如有侵权,请联系作者删除!