Skip to content

Commit 1662970

Browse files
prevent the nav gesture if not on start destination
1 parent 7bc4aa0 commit 1662970

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

app/src/main/java/com/example/android/navigation/MainActivity.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import android.os.Bundle
2020
import androidx.appcompat.app.AppCompatActivity
2121
import androidx.databinding.DataBindingUtil
2222
import androidx.drawerlayout.widget.DrawerLayout
23+
import androidx.navigation.NavController
24+
import androidx.navigation.NavDestination
2325
import androidx.navigation.findNavController
2426
import androidx.navigation.ui.AppBarConfiguration
2527
import androidx.navigation.ui.NavigationUI
@@ -39,6 +41,14 @@ class MainActivity : AppCompatActivity() {
3941
// tie the binding object into a view
4042
NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
4143
appBarConfiguration = AppBarConfiguration(navController.graph, drawerLayout)
44+
// prevent nav gesture if not on start destination
45+
navController.addOnDestinationChangedListener{ nc : NavController, nd: NavDestination, args: Bundle? ->
46+
if (nd.id == nc.graph.startDestination) {
47+
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
48+
} else {
49+
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
50+
}
51+
}
4252
NavigationUI.setupWithNavController(binding.navView, navController)
4353
}
4454

0 commit comments

Comments
 (0)