添加Enter Animation以在Android导航组件中启动目标



我知道如何在导航图中的action标签中添加Enter和退出动画。我也知道如何在使用navController导航时使用NavOptions动态添加动画。

我想知道如何在导航图中添加StartDestination的Enter Animation。我可以以拖曳方式进行:

  1. 将动画应用于开始目标的根视图
  2. 使用将用原始目的地片段代替的临时起始目标片段。
  3. 将动画应用于NavHostFragment的容器(FrameLayout(并动态添加主机

但我想知道是否有任何官方解决方案为此目的。

谢谢

没有官方方法来动画 startDestination fragment,我相信您通常不应该对其进行动画。您的startDestination片段有几种方式,并且它们都有自己的操作动画的方式:

  1. 您的NavHost由一项活动托管,此活动是从启动器启动的。发射器通常会覆盖窗口过渡,以使您的活动出现得很好。
  2. 您的NavHost由一项活动托管,此活动由另一个活动启动。使用活动过渡来覆盖默认情况。
  3. 您的NavHost嵌套在片段中。包含的片段在视图时运行自己的过渡。

在所有情况下,当startDestination片段出现或消失时都涉及其他过渡,因此这里的片段过渡可能会与现有的过渡相撞,从而使其看起来不愉快。

同时,如果您真的想为它做动画,则有很多方法。除了在问题中提到的外,我还可以考虑以下内容:

  1. 如果您使用的是本机片段,请在应用程序主题中设置属性 fragmentOpenEnterAnimationfragmentOpenExitAnimation等。更新:在问题的上下文中,这是没有意义的,无论如何都不会工作。
  2. 覆盖Fragment.onCreateAnimation或您的片段中的Fragment.onCreateAnimator方法和返回动画/动画仪。

相关内容

  • 没有找到相关文章

最新更新