0

我正在尝试在 nav_host_fragment 所在的位置显示一个新片段,但我希望在我单击 backButton 或应用程序中的 X 时显示旧片段(我已经添加了该片段)。在它现在的状态下,它不会让我离开 PlaylistFragment。

我也尝试过使用 FragmentTransaction.add(...) 但我不知道我是如何让它工作的

我的代码:

MainActivity.java:

 Fragment fragment = new PlayListFragment(position);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        Fragment oldFragment = fragmentManager.findFragmentByTag(fragment.getClass().getName());

        //if oldFragment already exits in fragmentManager use it
        if (oldFragment != null) {
            //fragment = oldFragment;
        }

        fragmentTransaction.replace(R.id.nav_host_fragment, fragment, fragment.getClass().getName());

        fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);

        fragmentTransaction.addToBackStack("playlist");

        fragmentTransaction.commit();

播放列表片段.java:

        getActivity().getSupportFragmentManager().popBackStack("playlist", 0);

编辑:当我尝试在后台放置 null 而不是“播放列表”时:是的。然后我看到两个片段互相溢出:正常状态: https ://prnt.sc/12yitg5

点击“下载歌曲”时: https ://prnt.sc/12yiu79

在片段中点击返回时: https ://prnt.sc/12yiuy6

编辑:当我再次单击 X 时,它会显示主页片段,而底部导航会突出显示库选项卡。

4

0 回答 0