【发布时间】:2020-11-19 14:40:07
【问题描述】:
当显示主片段时,我正在尝试从返回堆栈中清除所有片段。 在导航图中,我添加了此操作
<fragment
android:id="@+id/loginFragment"
android:name="com.test.navTest.ui.fragment.LoginFragment"
android:label="fragment_login"
tools:layout="@layout/login_fragment"
>
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@+id/homeFragment"
/>
</fragment>
并且在登录片段中。我试过了
findNavController().navigate(LoginFragmentDirections.actionLoginFragmentToHomeFragment())
和
findNavController().navigate(R.id.action_loginFragment_to_homeFragment)
据我了解这里的文档https://developer.android.com/guide/navigation/navigation-navigate
popUpTo 清除所有堆栈,直到目的地。但是当我按下返回时,什么都没有清除。
更新: 我将此操作更改为 popUpTo=Login。它只删除了登录片段,而不是之前的 2 个片段。我应该在登录之前为片段的操作添加任何参数吗
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@+id/loginFragment"
app:popUpToInclusive="true" />```
【问题讨论】:
标签: android android-jetpack-navigation