gpt4 book ai didi

android - 在android导航组件中添加进入动画开始目的地

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:40 24 4
gpt4 key购买 nike

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

我想知道如何在导航图中为 StartDestination 添加进入动画。我可以通过两种方式做到这一点:

  1. 将动画应用于起始目的地的 Root View
  2. 使用将被原始目标 fragment 替换的临时起始目标 fragment 。
  3. 将动画应用于NavHostFragment 的容器(FrameLayout) 并动态添加主机 fragment

但我想知道是否有任何官方解决方案可以用于此目的。

谢谢

最佳答案

没有正式的方法来为 startDestination fragment 制作动画,我相信你通常不应该为它制作动画。您的 startDestination fragment 有几种方式进入 View ,它们都有自己的方式来运行动画:

  1. 您的 NavHost 由一个 Activity 托管,并且该 Activity 是从启动器启动的。启动器通常会覆盖窗口转换以使您的 Activity 看起来很好。
  2. 您的 NavHost 由一个 Activity 托管,而此 Activity 由另一个 Activity 启动。使用 activity transitions覆盖默认值。
  3. 您的 NavHost 嵌套在 fragment 中。包含 fragment 在进入 View 时会运行自己的过渡。

如您所见,在所有情况下,当 startDestination fragment 出现或消失时,都会涉及另一个转换,因此此处的 fragment 转换可能会与现有转换发生冲突,使其看起来令人不快。

同时,如果你真的想把它做成动画,有很多方法。除了问题中提到的,我还能想到这些:

  1. 如果您使用的是原生 fragment ,请使用 fragmentOpenEnterAnimationfragmentOpenExitAnimation 等属性在应用主题中设置默认 fragment 转换。 更新:它在问题的上下文中没有意义,无论如何都不会起作用。
  2. 覆盖 fragment 中的 Fragment.onCreateAnimationFragment.onCreateAnimator 方法并返回所需的动画/动画师。

关于android - 在android导航组件中添加进入动画开始目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com