我在项目中有这样的设置:
应用插件:'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())