Am using Drawer layout & Navigation View with navigation(navGraph), navigation works fine with drawer item. The issue came while I was trying to navigate the fragment on button click by using navigate method navController.navigate(R.id.navigation_leave_apply)
I have three items in Drawer are Home, Leave Apply, Leave Approval. When I go to Leave Apply from Home using navController.navigate(R.id.navigation_leave_apply) in button click event and it navigate to Leave Apply fragment and it was success, but the Leave Apply item is not checked in Drawer. 1st image is navigate through Drawer, 2nd image is using navController.navigate
After this am not able to navigate to Home screen using drawer layout, when I clicked Home nothing happened.
NavController setup Code
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager()
.findFragmentById(R.id.nav_host_fragment_content_main);
assert navHostFragment != null;
navController = navHostFragment.getNavController();
mAppBarConfiguration = new AppBarConfiguration.Builder(R.id.navigation_home_screen, R.id.navigation_leave_apply,
R.id.navigation_leave_approval)
.setOpenableLayout(binding.drawerLayout).build();
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(binding.navView, navController);
HeaderNavigationDrawerBinding headerBinding = HeaderNavigationDrawerBinding.bind(binding.navView.getHeaderView(0));
public boolean onSupportNavigateUp() {
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager()
.findFragmentById(R.id.nav_host_fragment_content_main);
assert navHostFragment != null;
NavController navController = navHostFragment.getNavController();
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|| super.onSupportNavigateUp();
}
On Button Click
navController.navigate(R.id.navigation_leave_apply)
NavGraph
<?xml version="1.0" encoding="utf-8"?>
<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"
android:id="@+id/navigation_home"
app:startDestination="@+id/navigation_home_screen">
<fragment
android:id="@+id/navigation_home_screen"
android:name="com.ntp.view.home.HomeFragment"
android:label="@string/home"
tools:layout="@layout/fragment_home" />
<fragment
android:id="@+id/navigation_leave_apply"
android:name="com.ntp.view.leave.employee.LeaveApplyFragment"
android:label="@string/leave"
tools:layout="@layout/fragment_leave_apply" />
<fragment
android:id="@+id/navigation_leave_approval"
android:name="com.ntp.view.leave.approval.LeaveApprovalFragment"
android:label="@string/leave_approval"
tools:layout="@layout/fragment_leave_approval" />
</navigation>
How to sync Drawer flow and navController.navigate?

