使用导航从一个片段导航到另一个片段后,防止后按工作

Posted

技术标签:

【中文标题】使用导航从一个片段导航到另一个片段后,防止后按工作【英文标题】:prevent on back pressed to work after using navigation to navigate from one fragment to the other 【发布时间】:2020-09-03 19:14:00 【问题描述】:

您好,我使用导航组件和导航图从一个片段导航到另一个片段,我想要完全防止 onBackPressed,这样当用户单击 onBack 时,应用程序将退出。我正在从注册片段导航到主页片段。

这是导航图中的代码

<fragment
        android:id="@+id/register_fragment"
        android:name="manu.apps.firebaseloginregister.fragments.RegisterFragment"
        android:label="Register Fragment"
        tools:layout="@layout/register_fragment">

        <action
            android:id="@+id/action_register_to_home_fragment"
            app:destination="@id/home_fragment"/>

    </fragment>

    <fragment
        android:id="@+id/home_fragment"
        android:name="manu.apps.firebaseloginregister.fragments.HomeFragment"
        android:label="Home Fragment"
        tools:layout="@layout/home_fragment">

    </fragment>

这是我在单击注册按钮时在注册片段中导航的代码


Navigation.findNavController(view).navigate(R.id.home_fragment);

【问题讨论】:

【参考方案1】:

您可以查看此To handle onBackPress。 但是,在您的情况下,我认为您想导航到主页并清除导航堆栈。所以你可以试试Clear stack after navigate。

【讨论】:

以上是关于使用导航从一个片段导航到另一个片段后,防止后按工作的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中使用片段时处理后按

使用 NavController 从片段导航到另一个片段

如何使用 JetpackNavigation 组件从 BottomSheetDialogFragment 导航到另一个 Fragment

从片段导航到另一个片段时隐藏键盘

从一个片段移动到另一个片段时如何自动选择底部导航?

底部导航图标不变