清除导航返回堆栈并重新创建活动

时间:2020-09-01 04:04:45

标签: android android-studio android-fragments android-jetpack-navigation android-darkmode

我正在开发一个具有LoginFragmentHomeFragment的应用程序。 我正在使用jetpack导航组件来处理片段导航。 首先,在该用户完成LoginFragment中的登录过程后,我呼叫popBackStack(),然后将用户导航到HomeFragment。 当用户单击dark mode按钮时出现问题。 我将活动称为recreate()。 而且我需要再次还原NavHost,但是我清除了该navHost的StartDestination

我该怎么做才能解决这个问题?

注意 :我尝试使用popUpTo;但这对我不起作用。

1 个答案:

答案 0 :(得分:2)

根据Principles of Navigation,您不应将登录名用作图形的开始目标:

注意:一个应用程序可能具有一次性设置或一系列登录屏幕。这些条件屏幕不应视为开始目标,因为用户仅在某些情况下才看到这些屏幕。

相反,请遵循guide for doing Login in the Navigation Component并有条件地导航到您的登录屏幕(即,仅当用户未登录时)。