Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打开一个片段,该片段将替换nav_主机,使其能够返回_Java_Android_Fragment_Native_Android Bottomnavigationview - Fatal编程技术网

Java 打开一个片段,该片段将替换nav_主机,使其能够返回

Java 打开一个片段,该片段将替换nav_主机,使其能够返回,java,android,fragment,native,android-bottomnavigationview,Java,Android,Fragment,Native,Android Bottomnavigationview,我试图显示一个新的片段,其中导航主机片段是,但我希望旧的显示每当我点击backButton或我的应用程序中的X(我已经添加了)。 在它现在的状态下,它不会让我离开播放片段 我还尝试了FragmentTransaction.add(…),但我不知道如何让它工作 我的代码: MainActivity.java: Fragment fragment = new PlayListFragment(position); FragmentManager fragmentManager =

我试图显示一个新的片段,其中导航主机片段是,但我希望旧的显示每当我点击backButton或我的应用程序中的X(我已经添加了)。 在它现在的状态下,它不会让我离开播放片段

我还尝试了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();
playlipfragment.java:

        getActivity().getSupportFragmentManager().popBackStack("playlist", 0);
编辑: 当我尝试将null而不是“播放列表”放在Backback中时:
是的。然后我看到两个碎片互相溢出: 正常状态:

单击“下载的歌曲”时:

在片段中单击“上一步”时:


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

尝试放置fragmentTransaction.addToBackStack(null);而不是fragmentTransaction.addToBackStack(“播放列表”)?是的。然后我看到两个片段彼此溢出:正常状态:当点击“下载的歌曲”时:当点击片段中的返回时:编辑:当我再次点击X时,它显示我的主片段,而底部导航突出显示库选项卡。访问此唯一的事情是你需要根据你的代码进行应用。它起作用了。谢谢你找到这个。不知怎的,我没有。如果您使用的是
NavHostFragment
,那么您永远不必编写
FragmentTransaction
。你会的。为什么您要尝试使用
碎片事务