Navigation popUpTo and PopUpToInclusive aren#39;t clearing the backstack(导航popUpTo和PopUpToInclusive不会清除后台堆栈)
问题描述
我是Android Jetpack导航体系结构的新手。我正在一款新的应用程序上试用。有一个活动和几个片段,其中两个是登录屏幕和电子邮件登录屏幕。我在我的导航XML中定义了这些片段。APP流程如下:
Login screen
→Email Login screen
我想要的是,在导航到电子邮件登录屏幕后,当我按BACK时,应用程序退出。这意味着删除了登录屏幕的后端堆栈。我知道登录屏幕不应该那样工作,但我还在想办法。
我遵循了Google的Get started with the Navigation component中的文档。它说,使用app:popUpTo
和app:popUpToInclusive="true"
应该清除后台堆栈,但是当我在邮件登录屏幕上按BACK时,它仍然返回登录而不是退出。
所以,以下是我尝试过的内容。
nav_main.xml
LoginFragment.kt
我给了一个按钮一个单击事件。在它中,我使用导航控制器导航到电子邮件登录屏幕,为其提供操作ID。在<action>
中,有app:popUpTo
和app:popUpToInclusive="true"
。
推荐答案
您的popUpTo将返回到电子邮件登录,然后因为包含它而弹出。 如果您要将popUpTo更改为您的登录片段,它将被导航回并因包含标志而弹出,这将导致您所需的行为。这篇关于导航popUpTo和PopUpToInclusive不会清除后台堆栈的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!