我知道如何action
在导航图中的标签中添加进入和退出动画。我也知道如何NavOptions
在导航时动态添加动画navController
。
我想知道我们如何StartDestination
在导航图中添加输入动画。我可以通过两种方式做到这一点:
- 将动画应用到起始目的地的根视图
- 使用将被原始目标片段替换的临时起始目标片段。
- 将动画应用于容器(
FrameLayout
)NavHostFragment
并动态添加宿主片段
但我想知道是否有为此目的的官方解决方案。
谢谢
我知道如何action
在导航图中的标签中添加进入和退出动画。我也知道如何NavOptions
在导航时动态添加动画navController
。
我想知道我们如何StartDestination
在导航图中添加输入动画。我可以通过两种方式做到这一点:
FrameLayout
)NavHostFragment
并动态添加宿主片段但我想知道是否有为此目的的官方解决方案。
谢谢
没有官方的方法来动画startDestination
片段,我相信你通常不应该动画它。您的片段有几种startDestination
进入视图的方式,并且它们都有自己的方式来运行动画:
NavHost
由活动托管,并且此活动是从启动器启动的。启动器通常会覆盖窗口转换以使您的活动看起来很好。NavHost
由一个活动托管,而该活动由另一个活动启动。使用活动转换覆盖默认转换。NavHost
嵌套在一个片段中。包含的片段在出现时会运行自己的转换。正如您所看到的,在所有情况下,当片段出现或消失时都会涉及另一个过渡startDestination
,因此此处的片段过渡可能会与现有过渡发生冲突,从而使其看起来不愉快。
同时,如果你真的想为它制作动画,有很多方法。除了问题中提到的,我还可以考虑这些:
fragmentOpenEnterAnimation
过渡fragmentOpenExitAnimation
。Fragment.onCreateAnimation
或Fragment.onCreateAnimator
方法并返回所需的动画/动画师。