|
24 | 24 | import androidx.lifecycle.ViewModelProvider; |
25 | 25 | import androidx.navigation.NavController; |
26 | 26 | import androidx.navigation.NavGraph; |
| 27 | +import androidx.navigation.NavOptions; |
27 | 28 | import androidx.navigation.fragment.NavHostFragment; |
28 | 29 | import androidx.navigation.ui.AppBarConfiguration; |
29 | 30 | import androidx.navigation.ui.NavigationUI; |
@@ -217,10 +218,25 @@ private void observeViewModel() { |
217 | 218 | navGraph.setStartDestination(uiState.getDefaultNavDestination()); |
218 | 219 | navController.setGraph(navGraph); |
219 | 220 |
|
| 221 | + NavOptions springNavOptions = new NavOptions.Builder() |
| 222 | + .setEnterAnim(R.anim.fragment_spring_enter) |
| 223 | + .setExitAnim(R.anim.fragment_spring_exit) |
| 224 | + .setPopEnterAnim(R.anim.fragment_spring_pop_enter) |
| 225 | + .setPopExitAnim(R.anim.fragment_spring_pop_exit) |
| 226 | + .build(); |
| 227 | + |
220 | 228 | if (mBinding.navView instanceof BottomNavigationView bottomNav) { |
221 | 229 | NavigationUI.setupWithNavController(bottomNav, navController); |
| 230 | + bottomNav.setOnItemSelectedListener(item -> { |
| 231 | + navController.navigate(item.getItemId(), null, springNavOptions); |
| 232 | + return true; |
| 233 | + }); |
222 | 234 | } else if (mBinding.navView instanceof NavigationRailView railView) { |
223 | 235 | NavigationUI.setupWithNavController(railView, navController); |
| 236 | + railView.setOnItemSelectedListener(item -> { |
| 237 | + navController.navigate(item.getItemId(), null, springNavOptions); |
| 238 | + return true; |
| 239 | + }); |
224 | 240 | } |
225 | 241 |
|
226 | 242 | setSupportActionBar(mBinding.toolbar); |
|
0 commit comments