如何使用導航組件從第二個片段回傳到第一個片段?
導航主.xml
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/main_navigation"
app:startDestination="@id/firstFragment">
<fragment
android:id="@ id/firstFragment"
android:name="com.test.ttt.FirstFragment"
tools:layout="@layout/fragment_first">
<action
android:id="@ id/action_firstFragment_to_secondFragment"
app:destination="@id/secondFragment"
app:popUpTo="@id/firstFragment"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@ id/secondFragment"
android:name="com.test.ttt.SecondFragment"
tools:layout="@layout/fragment_second" />
</navigation>
FirstFragment.java
public class FirstFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Navigation.findNavController(container).navigate(FirstFragmentDirections.actionFirstFragmentToSecondFragment());
return inflater.inflate(R.layout.fragment_first, container, false);
}
}
我想要當我按下第二個片段中的后退按鈕時,它必須回到第一個片段,但目前,當我按下第二個片段中的后退按鈕時,它正在離開應用程式。
我怎么解決這個問題?
uj5u.com熱心網友回復:
您退出應用程式的原因是在導航到第二個片段時,您正在從堆疊中洗掉第一個片段。當您想在導航時從后臺堆疊中洗掉一些片段時,通常使用屬性app:popUpTo和。app:popUpToInclusive一個簡單的用例是從登錄/注冊片段導航到主頁/主片段時。在這種情況下,您不希望用戶能夠按回傳并回傳登錄/注冊螢屏。這就是這兩個屬性會有所幫助的地方。
TL;DR - 從您的操作中洗掉app:popUpToandapp:popUpToInclusive屬性
改變
<action
android:id="@ id/action_firstFragment_to_secondFragment"
app:destination="@id/secondFragment"
app:popUpTo="@id/firstFragment"
app:popUpToInclusive="true"/>
到
<action
android:id="@ id/action_firstFragment_to_secondFragment"
app:destination="@id/secondFragment"/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441749.html
下一篇:SQL函式在呼叫時沒有目的地
