切换活动时冻结动画

Posted

技术标签:

【中文标题】切换活动时冻结动画【英文标题】:Freezing animation when switching activities 【发布时间】:2018-11-29 15:44:21 【问题描述】:

实际上我有两个 Activity ,我的 SplashScreen(从 Webservice 等加载数据)和我的 MainActivity

问题出在这里:当我的 Splashscreen 结束加载数据并开始转换到 MainActivity 时,降雪动画会在屏幕中间停止 1 - 1.5 秒,然后转换到 MainActivity!

降雪动画似乎冻结了,它也发生在我的 SplashScreen 中使用的另一个动画(元素旋转)

当我的 Splashscreen 结束加载数据时,它会调用:

 startActivity(Intent(applicationContext, MainActivity::class.java))
 finish()

然后过渡工作,我的 MainActivity 出现

你能告诉我该怎么做吗,因为它看起来很糟糕。

这种冻结出现在真实手机(诺基亚 6)和 android studio 模拟器上,我在调试模式下启动它

编辑:这是我的 SplashScreen 的一部分,没什么特别的,我在做动画然后我调用 goHome() 方法

class WelcomeScreen : Activity()

override fun onCreate(savedInstanceState: Bundle?) 

    //Remove title bar
    requestWindowFeature(Window.FEATURE_NO_TITLE)

    //Remove notification bar
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_welcome)

    // Start Background Animation
   AnimationManager.performRotationAnimation(this, R.id.sun_2)

   goHome()


    fun goHome()
   
      startActivity(Intent(applicationContext, MainActivity::class.java))
      finish()
   

【问题讨论】:

Hey Manu,如果您提供有关您的代码的更多信息,对用户来说会更好,如果可能,请发布您的启动画面代码。 @Manish 你好,我做到了,我不能发布我所有的 SplashScreen 代码,因为它几乎有 200 行,我认为在这种情况下拥有所有代码并不重要,因为即使我停用此代码,我的动画仍然冻结 【参考方案1】:

用于活动动画,它可以帮助您进行活动切换动画

startActivity(Intent(this, MainActivity::class.java))
 overridePendingTransition(R.anim.abc_popup_enter,R.anim.abc_popup_exit)

【讨论】:

以上是关于切换活动时冻结动画的主要内容,如果未能解决你的问题,请参考以下文章

切换活动时如何添加过渡?

在 Nuxt 中切换导航动画

如何在Android中切换没有动画的活动?

当我保存然后切换文件时,Visual Studio 冻结

在场景之间切换会冻结触摸

从收藏视图切换视频时,Swift 播放器冻结但音频仍然在后台运行