Skip to content Skip to sidebar Skip to footer

How To Navigate Any Destination For Action Of Header Of Drawer In Navigation Architecture

Anyone please explain, How to define the action in Navigation architecture for header layout of drawer. Now, I need to set click of header of drawer and I set it to like this: hea

Solution 1:

You have two things you need:

  1. A reference to the NavController.

As per the Navigate to a destination documentation, you can use findNavController(R.id.your_nav_host_fragment) where R.id.nav_host_fragment is the android:id you put on your NavHostFragment in your Activity's layout.

  1. An action to go to the edit profile fragment.

For this, Navigation allows you to set up global actions - an action that is available from every destination in your graph. This is the correct way of triggering actions from UI provided by your activity.

<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/main_nav"
        app:startDestination="@id/mainFragment">

  ...

  <action android:id="@+id/action_global_editProfileFragment"
      app:destination="@id/editProfileFragment"/>

</navigation>

When using Safe Args with a global action, this will generate a MainNavDirections class that has your action on it.

This means your completed click listener would look like:

headerOfNavDrawer.setOnClickListener{
    // Use the Kotlin extension in the -ktx artifactsvalnavController= findNavController(R.id.nav_host_fragment)

    // Now use the generated Directions class to navigate to the destination
    navController.navigate(MainNavDirections.actionGlobalEditProfileFragment())
}

Post a Comment for "How To Navigate Any Destination For Action Of Header Of Drawer In Navigation Architecture"