簡體   English   中英

是否可以使用Android導航架構組件(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM