【问题标题】:How to disable toolbar navigation button animation如何禁用工具栏导航按钮动画
【发布时间】:2021-03-02 16:35:34
【问题描述】:

我正在使用带有导航 UI 的工具栏,当从顶级目的地导航到任何其他目的地时,导航按钮显示为向上按钮,并且标题向右移动。 当点击返回时,工具栏导航图标被隐藏,标题回到工具栏的开头并带有幻灯片动画。

 var appBarConfiguration = AppBarConfiguration.Builder(
        setOf(
            R.id.homeFragment,
            R.id.moreOptionsFragment,
            R.id.accountDetailsFragment
        )
    ).build()
    navController = findNavController(R.id.navHostMain)
    binding.bottomNavView.setupWithNavController(navController)
    NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration)[enter image description here][1]

如何在返回顶级片段时禁用标题上的动画

【问题讨论】:

    标签: android android-toolbar android-architecture-navigation


    【解决方案1】:

    如果您在活动中使用工具栏,您可以通过在活动中调用setSupportActionBar 将工具栏设置为支持操作栏,然后通过调用NavigationUI.setupActionBarWithNavController 使用导航控制器设置操作栏。

    你得到动画是因为 NavigationUI 使用ToolbarOnDestinationChangedListener 类,如果你用工具栏设置它,这个类有以下方法:

    @Override
        protected void setNavigationIcon(Drawable icon,
                @StringRes int contentDescription) {
            Toolbar toolbar = mToolbarWeakReference.get();
            if (toolbar != null) {
                boolean useTransition = icon == null && toolbar.getNavigationIcon() != null;
                toolbar.setNavigationIcon(icon);
                toolbar.setNavigationContentDescription(contentDescription);
                if (useTransition) {
                    TransitionManager.beginDelayedTransition(toolbar);
                }
            }
        }
    

    如您所见,此方法使用TransitionManager 动画移除导航图标,但它也会影响标题。我不认为你可以禁用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多