[英]Is it possible to set startDestination conditionally using Android Navigation Architecture Component(Android Jetpack)?
[英]Is it possible to start with a “non-start” fragment using Android Navigation Architecture Component(Android Jetpack)?
所以我有以下導航圖:
Fragment A (start) --> Fragment B
所以對於某些情況(firebase通知),我需要直接啟動Fragment B
,從通知中傳遞數據。 現在,這有效。 但是,當我按下后退按鈕時,會導致崩潰。 是因為前導片段( Fragment A
)不在堆棧中嗎? 如果是這樣,有沒有辦法妥善處理這個問題。 基本上,我需要backPressed動作來啟動Fragment B
直接啟動而不通過Fragment A
的情況下啟動片段( Fragment A
)。
以下是我的圖表的摘要:
<fragment
android:id="@+id/homeFragment"
android:name="dita.dev.myportal.ui.home.HomeFragment"
android:label="Home"
tools:layout="@layout/fragment_home">
<action
android:id="@+id/action_homeFragment_to_messageDetailFragment"
app:destination="@id/messageDetailFragment"
app:exitAnim="@anim/fade_out_animation" />
</fragment>
<fragment
android:id="@+id/messageDetailFragment"
android:name="dita.dev.myportal.ui.messages.details.MessageDetailFragment"
android:label="Message"
tools:layout="@layout/fragment_message_detail">
<argument
android:name="title"
app:argType="string" />
<argument
android:name="message"
app:argType="string" />
</fragment>
我希望鏈接有所幫助。 https://developer.android.com/guide/navigation/navigation-deep-link
深層鏈接允許合成后堆棧。 引自網站的話說,“這意味着當用戶從深層鏈接目的地按下”返回“按鈕時,他們會導航回導航堆棧,就好像他們從入口點進入應用程序一樣。” 也許嘗試為Fragment B創建一個深層鏈接會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.