使片段的生命周期模仿另一个

时间:2014-08-01 10:19:27

标签: android android-fragments android-lifecycle

我有什么

我有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中删除?

1 个答案:

答案 0 :(得分:0)

使用getActivity().getChildFragmentManager();取代getActivity().getSupportFragmentManager(); 如果您在Fragment中使用Fragment。