从另一个片段导航到主页片段很热

Hot to navigate to home fragment from another fragment

我是 Android 编程的新手,但我正在使用其他语言进行编码。在特定情况下我无法导航到主页片段。

我有三个片段,其中还有几个片段,即设置、容量和关于。所有这些都可以通过溢出工具栏菜单项来访问。可以通过主页片段上的另一个按钮进行设置。

用例 1:单击主页片段上的“设置”按钮。设置打开。在设置中使用 Up/Home 或后退按钮。单击其中任何一个,即可到达主页片段。

用例 2:单击工具栏溢出菜单(三个点)。出现三个菜单项。 Select 设置菜单项。设置打开。在设置中,使用 Up/Home 或返回按钮。单击其中任何一个,即可到达主页片段。

用例 1 工作正常。我认为这里使用 nav_graph defined 来定义片段之间的导航。

用例 2 失败。按 Up/Home 按钮或后退按钮后,我看到白屏,而不是停留在主页片段上。

我研究了几个网站的代码,包括 SO 和官方 Android 站点。但是无法弄清楚从另一个片段(特别是通过工具栏菜单和 nav_graph 之外到达)导航回主片段时要使用哪种代码。

我在调试中研究了栈中的方法window。但是也没帮到我。

请赐教使用方法

首先在内容视图(框架视图)中设置Home Fragment。 在顶部,您可以将下一个片段放在另一个片段之上。 activity 中的创建方法此方法将弹出除 Home Fragment 之外的所有片段。

在代码下方添加 Fragment 使用

    Fragment fragment = new FragmentHome();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).addToBackStack(fragment.getClass().getSimpleName()).commit();

回家清零

    public void goToHome()
{
    FragmentManager fragmentManager = getSupportFragmentManager();
    for(int i = 0; i < fragmentManager.getBackStackEntryCount()-1; ++i)
    {
        fragmentManager.popBackStack();
    }
}

我继续寻找问题的解决方案。我在 https://medium.com/mobile-app-development-publication/learn-android-navigation-component-through-coding-79dc47b240b3 中遇到了一个解决方案,它工作得很好,解决了白屏问题,也没有使用片段管理器的显式方法遍历到另一个片段。它是关于将菜单项链接到导航图。