下面列出了android.app.Fragment#getChildFragmentManager ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public LifeListenFragment getLifeListenerFragment(Fragment fragment) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
FragmentManager fm = fragment.getChildFragmentManager();
return findFragment(fm);
}
return null;
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void registerHookToContext(@NonNull Fragment fragment) {
FragmentManager manager = fragment.getChildFragmentManager();
HookFragment hookFragment = (HookFragment) manager.findFragmentByTag(TAG_HOOK);
if (hookFragment == null) {
hookFragment = new HookFragment();
manager.beginTransaction()
.add(hookFragment, TAG_HOOK)
.commitAllowingStateLoss();
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void unregisterHookToContext(@NonNull Fragment fragment) {
FragmentManager manager = fragment.getChildFragmentManager();
HookFragment hookFragment = (HookFragment) manager.findFragmentByTag(TAG_HOOK);
if (hookFragment != null) {
hookFragment.postEnable = false;
manager.beginTransaction()
.remove(hookFragment)
.commitAllowingStateLoss();
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void registerHookToContext(@NonNull Fragment fragment) {
FragmentManager manager = fragment.getChildFragmentManager();
HookFragment hookFragment = (HookFragment) manager.findFragmentByTag(TAG_HOOK);
if (hookFragment == null) {
hookFragment = new HookFragment();
manager.beginTransaction().add(hookFragment, TAG_HOOK).commitAllowingStateLoss();
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void unregisterHookToContext(@NonNull Fragment fragment) {
FragmentManager manager = fragment.getChildFragmentManager();
HookFragment hookFragment = (HookFragment) manager.findFragmentByTag(TAG_HOOK);
if (hookFragment != null) {
hookFragment.postEnable = false;
manager.beginTransaction().remove(hookFragment).commitAllowingStateLoss();
}
}
/**
* @param fragment 父fragment
* @param uri 地址
*/
@RequiresApi(17)
public FragmentTransactionUriRequest(@NonNull Fragment fragment, String uri) {
super(fragment.getActivity(), uri);
mFragmentManager = fragment.getChildFragmentManager();
}
@Provides
@Named(CHILD_FRAGMENT_MANAGER)
@PerFragment
static FragmentManager childFragmentManager(@Named(FRAGMENT) Fragment fragment) {
return fragment.getChildFragmentManager();
}
@Nullable
@Override
public FragmentManager getChildFragmentManager(Fragment fragment) {
return fragment.getChildFragmentManager();
}
@Nullable
@Override
public FragmentManager getChildFragmentManager(Fragment fragment) {
return fragment.getChildFragmentManager();
}