Navigation UI KOTLIN expansion framework
Navigation UI KOTLIN expansion framework use guide
Navigation is one of the key components in mobile applications, which helps users navigate between different screens.In Kotlin, there are many powerful expansion libraries that can simplify the navigation process.This article will introduce you to how to use Kotlin's navigation UI extension framework.
1. Installation and setting
First, you need to add the following dependencies to the project's Build.gradle file:
kotlin
implementation 'androidx.navigation:navigation-fragment-ktx:2.4.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.4.0'
Add a navhostfragment to your Activity_main.xml file, as a navigation container:
<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_graph" />
Among them, the app: navgraph = "@navigation/nav_graph" specifies a XML file called nav_graph, which defines the navigation diagram of your application.
2. Create a navigation map
Create a nav_graph.xml file in the Res/Navigation folder.The navigation chart defines all the destinations and actions in the application.
The following is an example of nav_graph.xml file:
<navigation 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">
<fragment
android:id="@+id/firstFragment"
android:name="com.example.app.FirstFragment"
android:label="First Fragment"
tools:layout="@layout/fragment_first" >
<action
android:id="@+id/action_firstFragment_to_secondFragment"
app:destination="@id/secondFragment" />
</fragment>
<fragment
android:id="@+id/secondFragment"
android:name="com.example.app.SecondFragment"
android:label="Second Fragment"
tools:layout="@layout/fragment_second" />
</navigation>
In the NAV_GRAPH.XML file, we define two destinations: FirstFragment and SecondFragment, and define a action from FIRSTFRAGMENT to SecondFragment.
3. Navigation to the destination
To navigate to a destination in the code, you can use the Kotlin extension function FindNavController ().
For example, click event navigation from a button in the MainActivity to FIRSTFRAGMENT:
kotlin
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
findNavController(R.id.nav_host_fragment).navigate(R.id.action_firstFragment_to_secondFragment)
}
In the above example, we use the FindNavController () function to obtain NavController of Navhostfragment, and use the Navigate () function to navigate to the specified action.
4. Receive navigation parameters
If your destination needs to pass parameters, you can define the parameters in the nav_graph.xml file, and then receive the parameters in the corresponding fragments.
First, define parameters in nav_graph.xml files:
<argument
android:name="userId"
app:argType="string"
android:defaultValue="" />
Then receive the parameters in the fragment:
kotlin
val userId = arguments?.getString("userId")
5. Use navigation in the menu
Navigation UI extensions also allow you to use navigation in the application menu.
First, add a menuitem to your menu resource file and set a ID for it:
<item
android:id="@+id/action_secondFragment_to_thirdFragment"
android:title="Next" />
Then, use the onoptionSiteMSELECTED () function to process the menu item.
kotlin
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_secondFragment_to_thirdFragment -> {
findNavController().navigate(R.id.action_secondFragment_to_thirdFragment)
true
}
else -> super.onOptionsItemSelected(item)
}
}
In the above example, we use the FindNavController () function to navigate to the specified action.
6. Summary
By using the navigation UI Kotlin extension framework, you can simplify the application of the application.This article introduces the steps of installation and setting this framework, and provide some common operation examples.I hope these guidelines will help you understand and use the navigation UI Kotlin expansion framework.
It should be noted that this article only provides basic overview and examples.For more detailed information and more complicated use cases, please refer to relevant documents and official websites.
Java example code:
-An navigation in onClickListener:
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Navigation.findNavController(view).navigate(R.id.action_firstFragment_to_secondFragment);
}
});
-News in onoptionSiteMSELECTED:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_secondFragment_to_thirdFragment:
Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(R.id.action_secondFragment_to_thirdFragment);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Please adapt the above example code to your project according to your actual situation.