如何在 android 中为 NavigationUI 添加动画过渡?
How to add animation transition to NavigationUI in android?
我正在使用 NavigationUI 将目的地绑定到菜单项,但如何覆盖默认动画过渡?
根据文档https://developer.android.com/topic/libraries/architecture/navigation/navigation-ui#Tie-navdrawer,我找不到任何可以添加动画过渡的方法。
NavigationUI 不提供 API。但是,绝对没有使用 NavigationUI
的要求 - 它只是可选的辅助方法。
因此您可以复制/构建 what it actually does 的简化版本:
NavOptions navOptions = new NavOptions.Builder()
.setLaunchSingleTop(true) // Used to prevent multiple copies of the same destination
.setEnterAnim(R.anim.your_enter_anim)
.setExitAnim(R.anim.your_exit_anim)
.setPopEnterAnim(R.anim.your_pop_enter_anim)
.setPopExitAnim(R.anim.your_pop_exit_anim);
.build();
// Assuming you have a MenuItem named item
navController.navigate(item.getItemId(), null, options);
这是一个旧线程,但最近我遇到了同样的问题。
这是在 NavigationUI
中覆盖默认过渡动画的理想解决方案
我已经解决了这个问题,方法是在 'animator' 资源目录中创建默认的导航动画资源。我创建了这四个动画师资源文件-
- res/animator/nav_default_enter_anim.xml
- res/animator/nav_default_exit_anim.xml
- res/animator/nav_default_pop_enter_anim.xml
- res/animator/nav_default_pop_exit_anim.xml
其他都是一样的,按照Google的官方指南设置底部导航栏即可。
bottomNavBar = binding.bottomNavBar
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.fNavHost) as NavHostFragment
NavigationUI.setupWithNavController(bottomNavBar, navHostFragment.navController)
我正在使用 NavigationUI 将目的地绑定到菜单项,但如何覆盖默认动画过渡?
根据文档https://developer.android.com/topic/libraries/architecture/navigation/navigation-ui#Tie-navdrawer,我找不到任何可以添加动画过渡的方法。
NavigationUI 不提供 API。但是,绝对没有使用 NavigationUI
的要求 - 它只是可选的辅助方法。
因此您可以复制/构建 what it actually does 的简化版本:
NavOptions navOptions = new NavOptions.Builder()
.setLaunchSingleTop(true) // Used to prevent multiple copies of the same destination
.setEnterAnim(R.anim.your_enter_anim)
.setExitAnim(R.anim.your_exit_anim)
.setPopEnterAnim(R.anim.your_pop_enter_anim)
.setPopExitAnim(R.anim.your_pop_exit_anim);
.build();
// Assuming you have a MenuItem named item
navController.navigate(item.getItemId(), null, options);
这是一个旧线程,但最近我遇到了同样的问题。 这是在 NavigationUI
中覆盖默认过渡动画的理想解决方案我已经解决了这个问题,方法是在 'animator' 资源目录中创建默认的导航动画资源。我创建了这四个动画师资源文件-
- res/animator/nav_default_enter_anim.xml
- res/animator/nav_default_exit_anim.xml
- res/animator/nav_default_pop_enter_anim.xml
- res/animator/nav_default_pop_exit_anim.xml
其他都是一样的,按照Google的官方指南设置底部导航栏即可。
bottomNavBar = binding.bottomNavBar
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.fNavHost) as NavHostFragment
NavigationUI.setupWithNavController(bottomNavBar, navHostFragment.navController)