当主页片段被显示时,我尝试清除返回栈中的所有片段。 在导航图中,我添加了此操作。
<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())
根据这里的文档https://developer.android.com/guide/navigation/navigation-navigate,popUpTo
会清除所有栈直到目标。但是当我按下返回键时,没有任何内容被清除。更新: 我将此操作更改为popUpTo=Login。它只删除了登录片段,而不是在其之前的两个片段。我应该在登录之前的片段动作中添加任何参数吗?
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@+id/loginFragment"
app:popUpToInclusive="true" />```