【发布时间】:2020-03-18 12:07:44
【问题描述】:
我已从连接到 NavController 的 导航抽屉 导航到 DialogFragment。但是当我导航到另一个我设置了 popUpTo 和 Inclusive of Dialog 片段的目的地时,它不会清除堆栈。如何清除堆栈?
AM 从 LogoutDialog 调用此方法
findNavController().navigate(R.id.action_logoutDialog_to_auth_navigation)
我正在使用片段并且只有一个活动。
这是我的导航图的一部分
<fragment
android:id="@+id/homeFragment"
android:name="io.ui.home.HomeFragment"
tools:layout="@layout/fragment_home" >
<action
android:id="@+id/action_homeFragment_to_auth_navigation"
app:destination="@id/auth_navigation"
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true" />
<argument
android:name="fromLogin"
app:argType="boolean"
android:defaultValue="false" />
</fragment>
<dialog
android:id="@+id/logoutDialog"
android:name="io.ui.dialog.LogoutDialog"
android:label="LogoutDialog" >
<action
android:id="@+id/action_logoutDialog_to_auth_navigation"
app:destination="@id/auth_navigation"
app:popUpTo="@id/logoutDialog"
app:popUpToInclusive="true" />
</dialog>
<!-- auth navigation graph -->
<navigation
android:id="@+id/auth_navigation"
app:startDestination="@id/loginFragment">
<fragment
android:id="@+id/loginFragment"
android:name="io.ui.login.LoginFragment"
android:label="fragment_login"
tools:layout="@layout/fragment_login">
<action
android:id="@+id/action_loginFragment_to_OTPFragment"
app:destination="@id/OTPFragment"
app:popUpTo="@id/loginFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment" />
<action
android:id="@+id/action_loginFragment_to_resetPasswordFragment"
app:destination="@id/resetPasswordFragment" />
</fragment>
<fragment
android:id="@+id/OTPFragment"
android:name="io.ui.login.OTPFragment"
android:label="fragment_otp"
tools:layout="@layout/fragment_otp">
<action
android:id="@+id/action_OTPFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@id/OTPFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_OTPFragment_to_loginFragment"
app:destination="@id/loginFragment"
app:popUpTo="@id/OTPFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/resetPasswordFragment"
android:name="io.ui.profile.PasswordFragment"
android:label="fragment_reset_password"
tools:layout="@layout/fragment_password" >
<argument
android:name="isReset"
app:argType="boolean"
android:defaultValue="false" />
</fragment>
</navigation>
【问题讨论】:
标签: android android-jetpack android-architecture-navigation