我有什么
我有Fragment
名为MainFragment
。这是从我MainActivity
添加的。在其Fragment
方法的onResume
内,我添加了另一个名为Fragment
的{{1}}。
SecondFragment
然后我就这样删除它。
@Override
public void onResume() {
super.onResume();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
SecondFragment secondFragment = (SecondFragment) fragmentManager.findFragmentByTag(SecondFragment.FRAG_TAG);
if (secondFragment == null)
secondFragment = SecondFragment.newInstance();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(mContainer.getId(), secondFragment, SecondFragment.FRAG_TAG).commit();
}
问题
这一切都运行良好但不适合@Override
public void onPause() {
super.onPause();
FragmentManager fm = getActivity().getSupportFragmentManager();
SecondFragment mhpf = (SecondFragment) fm.findFragmentByTag( SecondFragment.FRAG_TAG );
if ( mhpf != null )
fm.beginTransaction().remove( mhpf ).commit();
}
的生命周期,例如当方向发生变化或用户回家然后再次打开应用程序时。
为什么我这样做而不是从活动中添加
这是Fragment
的一部分所以我希望它自成一体。用户只需添加Android Library Module
,然后MainFragment
完全由SecondFragment
处理。
我的问题
有没有办法让我的MainFragment
表现得像普通SecondFragment
,而不必添加它并将其从Fragment
中删除?
答案 0 :(得分:0)
使用getActivity().getChildFragmentManager()
;取代getActivity().getSupportFragmentManager();
如果您在Fragment中使用Fragment。