我有4个片段,而我想做的是,当我用新的片段B / C或D替换它时,冻结片段A。
然后用片段A替换B / C / D,片段不会改变状态。

我有Google Maps,我正尝试返回到保存状态,但是问题是重新创建了片段...

我可以在锁定屏幕以及达到新意图时执行此操作。

如果有人可以帮助我,真的很感激。

感谢您的帮助:D

最佳答案

试试这个

使用此功能打开片段。您必须传递该垂直片段的标签。

private Fragment currentFragment;

    public void openNewFragment(Fragment f, String tag) {

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag);

        {
            if (fragment != null) {
                if (currentFragment != null) {
                    if (fragment.getClass().equals(currentFragment.getClass())) {
                        return;
                    }
                }

                ft.show(fragment);
                ft.hide(currentFragment);
                currentFragment = fragment;

            } else {
                if (currentFragment != null)
                    ft.hide(currentFragment);
                ft.add(R.id.container, f, tag);
                currentFragment = f;
            }
            ft.commit();
        }

    }

09-26 16:43