App navigation
Adding navigation library to project
Add following code to project level build.gradle file
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha05"
Project-level build.gradle
//on top of file
apply plugin: 'androidx.navigation.safeargs'
implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0"
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0"
In the layout of main activity or home activity add following
<fragment android:id="@+id/myNavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/navigation"
app:defaultNavHost="true"/>
MainActivity.java
onCreate(){
initialize nav controller
val navController = this.findNavController(R.id.myNavHostFragment)
NavigationUI.setupActionBarWithNavController(this,navController)
}
// enable upbutton
override fun onSupportNavigateUp(): Boolean {
val navController = this.findNavController(R.id.myNavHostFragment)
return navController.navigateUp()
}
now create a navigation.xml under resources folder. Open design and add your first fragment as destination. While creating fragments make sure to uncheck create layout file, include fragment factory methods, include interface callbacks.
Code to navigate using onClickListener
view?.findNavController()?.navigate(SubcategoryFragmentDirections.actionSubcategoryFragmentToSubCategoryDetailFragment())
get arguments
CurrentFragmentArgs args = CurrentFragmentArgs .fromBundle(getArguments)
Last updated
Was this helpful?