overridePendingTransition方法已被弃用,我该怎么办?

3

当我完成一个子活动或主活动恢复时,会播放一个动画,我不确定是哪个事件触发了它,但我想替换它。我以API级别34为目标,最低级别为28。

我目前正在使用的是

val intent = Intent(this, SettingsActivity::class.java)
val anim = ActivityOptions.makeCustomAnimation(
     applicationContext,
     R.anim.right_slide_in, R.anim.none
).toBundle()
startActivity(intent, anim)

我想在启动一个活动时播放一个动画,但当我尝试恢复父活动或结束子活动时,这并没有帮助(我不知道在这两种情况下动画发生在哪里)。
ChatGPT给了我一些使用startAnimation在rootView上的“解决方案”,但什么都没有发生(它也不理解过时这个词,所以无法自我纠正)。
2个回答

2
从API 34开始,你必须使用overrideActivityTransition,这里是关于如何使用它的官方文档

调用需要API级别34(当前最小为28)。如果我只想修复overridePendingTransition(0, 0),我应该怎么做? - undefined
1
@Krahmal 检查 Build.VERSION.SDK_INT 的值,如果是34,则使用 overrideActivityTransition,否则使用 overridePendingTransition - undefined

0
overridePendingTransition方法在API级别34中已经被弃用,建议使用新的动画API来实现活动过渡效果。您可以使用新的方法来实现相同的动画效果。要为启动、恢复父活动或完成子活动执行自定义活动过渡,您可以使用ActivityOptions类。
以下是一个示例,演示如何为启动活动实现自定义活动过渡效果:
val intent = Intent(this, SettingsActivity::class.java)
val animationBundle = ActivityOptions.makeCustomAnimation(
    this,
    R.anim.right_slide_in,  // Enter animation
    R.anim.none  // Exit animation
).toBundle()
startActivity(intent, animationBundle)

是的,但如果我想用自定义的过渡效果来完成它,你能给我一个例子吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接