我在项目中有这样的设置:
应用插件:“ 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()
但是这些方法不起作用
答案 0 :(得分:1)
根据Safe Args documentation,仅创建NavDirections
对象是不够的-您需要将其传递给navController.navigate()
:
navController.navigate(
LoginFragmentDirections.actionLoginFragmentToHomeFragment())