我正在尝试在 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 时,它会显示主页片段,而底部导航会突出显示库选项卡。