Android 片段保留背景

Android fragment remain background

提前致谢!

如果您正在使用 .addToBackStack(""),请删除它。并在每次用户 .replace(); 方法调用所有片段时调用片段。

好吧,我知道发生了什么事。这是由于与两个不同的片段管理器(FragmentManagerSupportFragmentManager)一起工作。
根据您要删除或替换的片段类型(支持或正常),您必须使用一个或另一个片段管理器。
我创建了一个枚举来了解哪种片段处于活动状态(以便删除)以及哪种片段将开始(以便替换)。
或多或少我做了一个这样的函数:

private void manageFragment (FragmentEnum nextFragment) {

        switch (activedFragment) {
            case SUPPORT:
                getSupportFragmentManager().beginTransaction().remove(fragmentSupport).commit();
                break;
            case NORMAL:
                getFragmentManager().beginTransaction().remove(fragmentNormal).commit();
                break;
        }

        activedFragment = nextFragment;

        switch (nextFragment) {
            case SUPPORT:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragmentSupport).commit();
                break;
            case NORMAL:
                getFragmentManager().beginTransaction().replace(R.id.fragment_container, fragmentNormal).commit();
                break;
        }
    }