提问人:Jonas Charrier 提问时间:11/5/2023 最后编辑:EemanJonas Charrier 更新时间:11/6/2023 访问量:374
overridePendingTransition 已弃用,我该怎么办?
overridePendingTransition is deprecated, how do i do?
问:
当我完成一个子活动或当主要活动恢复时,有一个动画正在播放,我不确定哪个事件触发了它,但我想替换它。我的目标是 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)
我想播放一个开始活动的动画,但当我尝试恢复父活动或完成子活动时,这没有帮助(同样,idk,以防动画发生)
ChatGPT 给了我一些在 rootView 上使用 startAnimation 的“解决方案”,但什么也没发生(而且它也不理解 deprecated 这个词,所以它不可能自行纠正)
答:
3赞
ismail alaoui
11/6/2023
#1
从 API 34 开始,你必须使用 overrideActivityTransition
,这里是如何使用它的官方文档。
评论
0赞
Krahmal
11/6/2023
“调用需要 API 级别 34(当前最小值为 28)”。如果我只想修复,我该怎么办?overridePendingTransition(0, 0)
1赞
Jonas Charrier
11/7/2023
@Krahmal检查该值,如果其 34 使用 else 使用Build.VERSION.SDK_INT
overrideActivityTransition
overridePendingTransition
1赞
Owais Yosuf
11/6/2023
#2
该方法在 API 级别 34 中确实已弃用,建议使用新的动画 API 进行活动转换。您可以使用新方法实现相同的动画效果。若要执行自定义活动转换以启动、恢复父活动或完成子活动,可以使用该类。overridePendingTransition
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)
评论
0赞
Jonas Charrier
11/7/2023
是的,但是如果我想通过自定义过渡来完成它怎么办,你能给我举个例子吗?
评论