Step 1 Add navigation components to the project
At the top of the project-level build.gradle
file, along with the other ext
variables, add a variable for the navigationVersion
. To find the latest navigation version number, see Declaring dependencies in the Android developer documentation.
ext {
...
navigationVersion = "2.3.0"
...
}
In the Gradle Scripts folder, open the module-level build.gradle
file. Add the dependencies for navigation-fragment-ktx
and navigation-ui-ktx
, as shown below:
dependencies {
...
implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion"
...
}
Step 2 Create the NavHostFragment
Inside the activity_main.xml
layout file, your fragment now looks like the following:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav" />
</merge>
in the nav
<fragment
android:id="@+id/loginFragment"
android:name="person.shilei.chat.login.LoginFragment"
android:label="LoginFragment"
tools:layout="@layout/fragment_login"/>