我在项目中有这样的设置:

应用插件:'androidx.navigation.safeargs'

ext.navigationVersion = "1.0.0-beta02"

类路径“android.arch.navigation:navigation-safe-args-gradle-plugin:$navigationVersion”

实现“android.arch.navigation:navigation-fragment-ktx:$navigationVersion”
实现“android.arch.navigation:navigation-ui-ktx:$navigationVersion”

nav_graph.xml:

<fragment
        android:id="@+id/loginFragment"
        android:name="com.terkacleaning.ui.login.LoginFragment"
        android:label="fragment_login"
        tools:layout="@layout/fragment_login">

        <action
            android:id="@+id/action_loginFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:exitAnim="@anim/slide_out_left"
            app:popExitAnim="@anim/slide_out_right"
            app:popUpTo="@id/loginFragment"
            app:popUpToInclusive="true" />

</fragment>

<fragment
        android:id="@+id/homeFragment"
        android:name="com.terkacleaning.ui.home.HomeFragment"
        android:label="fragment_home"
        tools:layout="@layout/fragment_home"/>

生成方法:
    LoginFragmentDirections.actionLoginFragmentToHomeFragment()

但是这些方法都行不通

最佳答案

根据 Safe Args documentation ,构建 NavDirections 对象是不够的 - 您需要将其传递给 navController.navigate() :

navController.navigate(
    LoginFragmentDirections.actionLoginFragmentToHomeFragment())

10-07 19:27
查看更多