kotlinandroid-navigationandroid-jetpack

Safeargs library doesnt generate direction class


I use navigation library and safeargs for passing data. I define argument to fragment like that.

<fragment
        android:id="@+id/otherFragment"
        android:name="com.asd.navigate.OtherFragment"
        android:label="OtherFragment">
        <argument
            android:name="screenTitle"
            android:defaultValue="0"
            app:type="string" />
    </fragment>

OtherFragmentArgs generated, I can use it but OtherFragmentDirection class doesnt generate when I click "make project". Is that bug or I have to do something different.

Thnx for advice.

buildscript {
    ...
    dependencies {
       ...
        classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha01"

    }
}

build.gradle

apply plugin: "androidx.navigation.safeargs"

MainActivity.kt

enter image description here


Solution

  • Look for the class of the fragment which is the source of navigation. If you define navigation from FragmentA to FragmentB, you will find FragmentADirections class with the actions you defined (in nav_graph.xml) in it.

    Then, to generate direction class ( Also argument class) you need to go Project level gradle then click the build command. Here I attached a screenshot to give a clear understanding.

    enter image description here