我知道如何在导航图的action
标签中添加进入和退出动画。我还知道在使用NavOptions
导航时如何使用navController
动态添加动画。
我想知道如何在导航图中为StartDestination
添加输入动画。我可以用两种方式做到这一点:
FrameLayout
的容器(NavHostFragment
)并动态添加主机片段但是我想知道为此目的有任何官方解决方案。
谢谢
答案 0 :(得分:2)
目前尚无官方的startDestination
片段动画制作方法,我相信您通常不应该对其进行动画处理。您的startDestination
片段有几种显示方式,它们都有自己的运行动画的方式:
NavHost
由一个活动托管,并且该活动是从启动程序启动的。启动器通常会覆盖窗口过渡,以使您的活动看起来更美观。 NavHost
由一个活动托管,该活动由另一个活动启动。使用activity transitions覆盖默认值。NavHost
嵌套在一个片段中。出现时,包含的片段会运行自己的过渡。在所有情况下,您都可以看到startDestination
片段的出现或消失时还涉及另一个过渡,因此此处的片段过渡可能会与现有过渡发生碰撞,从而使其显得不愉快。
同时,如果您真的想为其设置动画,则有很多方法。除了问题中提到的以外,我还可以考虑以下问题:
fragmentOpenEnterAnimation
,fragmentOpenExitAnimation
等设置默认片段过渡。 Fragment.onCreateAnimation
或Fragment.onCreateAnimator
方法并返回所需的动画/动画师。