3

Recently I ran into issue that I asked about here

But when trying to figure out what's happening I always stumble on the same problem.

Here's what I have - I have a collection, preview, edit fragments than I need to navigate between.

But after navigating from edit fragment to preview fragment I want the back button to take user to collection fragment instead of edit fragment, and it does that, but when trying to navigate further it crashes because the destination is said to be (view_fragment). Why is that, is it some sort of bug?

enter image description here

<fragment android:id="@+id/collection_fragment">
    <action
        android:id="@+id/action_collection_fragment_to_view_fragment"
        app:destination="@+id/view_fragment" />
</fragment>

<fragment android:id="@+id/view_fragment">
    <action
        android:id="@+id/action_view_fragment_to_edit_fragment"
        app:destination="@id/edit_fragment" />
    <argument android:name="item" />
</fragment>

<fragment android:id="@+id/edit_fragment">
    <action
        android:id="@+id/action_edit_fragment_to_view_fragment"
        app:destination="@id/view_fragment"
        app:popUpTo="@id/collection_fragment" />
    <argument android:name="item" />
</fragment>

EDIT:

Stack trace:

java.lang.IllegalArgumentException: navigation destination com.domain.application:id/action_collection_fragment_to_view_fragment is unknown to this NavController
    at androidx.navigation.NavController.navigate(NavController.java:669)
    at androidx.navigation.NavController.navigate(NavController.java:628)
    at com.domain.application.CollectionFragment$onActivityCreated$4.onChanged(CollectionFragment.kt:126)
    at com.domain.application.CollectionFragment$onActivityCreated$4.onChanged(CollectionFragment.kt:28)
    at com.domain.application.common.SingleLiveEvent$observe$1.onChanged(SingleLiveEvent.kt:20)
    at android.arch.lifecycle.LiveData.considerNotify(LiveData.java:109)
    at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:126)
    at android.arch.lifecycle.LiveData.setValue(LiveData.java:282)
    at android.arch.lifecycle.MutableLiveData.setValue(MutableLiveData.java:33)
    at com.domain.application.common.SingleLiveEvent.setValue(SingleLiveEvent.kt:27)
    at android.arch.lifecycle.LiveData$1.run(LiveData.java:87)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
antanas_sepikas
  • 5,644
  • 4
  • 36
  • 67
  • your links seem to be broken... also in your edit_fragment you set the destination to view_fragment, maybe setting it to collection_fragment would work? – Quinn Aug 08 '18 at 15:24
  • Can you link your error stack trace? – Mr.O Aug 08 '18 at 15:31
  • I fixed, the link and added stack trace. As far as setting collection_fragment, this is not what I wan't I want to should view_fragment, after edit and only when user click back show collection_fragment – antanas_sepikas Aug 08 '18 at 16:40

1 Answers1

0

This was a bug in alpha04 version it's fixed in alpha05 https://issuetracker.google.com/issues/111907708

antanas_sepikas
  • 5,644
  • 4
  • 36
  • 67