片段过渡动画

Fragment Transition Animation

我正在尝试为 2 个片段制作动画 [Splash Fragment , Fragment 1]

在过渡时有一个小毫秒的白色空白屏幕,不应该出现

动画资源文件代码:-

<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate android:fromYDelta="100%" android:toXDelta= "0%"  android:duration = "250"/> 
</set>

这个文件是我在导航文件中添加的,用于输入动画字段中的一个动作

我的splashFragment的导航如下:

 Handler().postDelayed({findNavController().navigate(R.id.action_splashScreen_to_onBording)},3000)

如前所述,基本问题是在过渡过程中有一小段 window 几毫秒的时间出现白屏并破坏了视图。我该如何删除它?

提前致谢

因为我无法理解你的动画文件是从 YDelta 到 XDelta,它们是相反的。所以,我认为你的意思是从 YDelta 到 YDelta,这将使片段从底部滑动到顶部。

现在,关于答案。在导航上设置动画时,您必须创建退出动画和进入动画。否则会遇到白屏的问题。

所以,你可以做的是添加下面的动画作为退出动画。

    <set xmlns:android="http://schemas.android.com/apk/res/android">

         <translate android:fromYDelta="0%" android:toYDelta= "-100%"  android:duration = "450"/> 
    </set>

它也会使splash fragment向上滑动,但比fragment1慢。并且不会显示空白屏幕。