Safeargs生成的路线不起作用(Android)

时间:2019-03-16 15:11:19

标签: android gradle kotlin

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

应用插件:“ androidx.navigation.safeargs”

ext.navigationVersion =“ 1.0.0-beta02”

classpath“ 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()

但是这些方法不起作用

1 个答案:

答案 0 :(得分:1)

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

navController.navigate(
    LoginFragmentDirections.actionLoginFragmentToHomeFragment())