Activity.OverrideActivityTransition 方法

定义

重载

OverrideActivityTransition(OverrideTransition, Int32, Int32)

使用此活动自定义活动转换的动画。

OverrideActivityTransition(OverrideTransition, Int32, Int32, Int32)

使用此活动自定义活动转换的动画。

OverrideActivityTransition(OverrideTransition, Int32, Int32)

使用此活动自定义活动转换的动画。

[Android.Runtime.Register("overrideActivityTransition", "(III)V", "GetOverrideActivityTransition_IIIHandler", ApiSince=34)]
public virtual void OverrideActivityTransition (Android.App.OverrideTransition overrideType, int enterAnim, int exitAnim);
[<Android.Runtime.Register("overrideActivityTransition", "(III)V", "GetOverrideActivityTransition_IIIHandler", ApiSince=34)>]
abstract member OverrideActivityTransition : Android.App.OverrideTransition * int * int -> unit
override this.OverrideActivityTransition : Android.App.OverrideTransition * int * int -> unit

参数

overrideType
OverrideTransition

OVERRIDE_TRANSITION_OPEN 启动/输入活动时,将使用此动画。 OVERRIDE_TRANSITION_CLOSE 完成/关闭活动时将使用此动画。

enterAnim
Int32

要用于传入活动的动画资源的资源 ID。 不对动画使用 0。

exitAnim
Int32

要用于传出活动的动画资源的资源 ID。 不对动画使用 0。

属性

注解

使用此活动自定义活动转换的动画。 在活动仍处于活动状态时,可以随时调用此功能。

这是一种更可靠的方法来替代运行时的过渡动画,而无需依赖 #overridePendingTransition(int, int) 它不适用于预测回来。 但是,当系统正在寻找下一个过渡动画时,动画 #overridePendingTransition(int, int) 集仍具有更高的优先级。

仅当活动在播放活动转换时位于任务顶部时,才会选择此方法设置的动画资源。 例如,如果要在启动从活动 A 启动的活动 B 时自定义打开转换,则应在 B 的 onCreate overrideType = OVERRIDE_TRANSITION_OPEN 中调用此方法,因为活动 B 将位于任务顶部。 如果要在完成活动 B 并返回到活动 A 时自定义结束转换,因为 B 仍然高于 A,因此应在活动 B 中使用 overrideType = OVERRIDE_TRANSITION_CLOSE此方法。

如果活动已调用此方法,并且还会设置另一个活动动画, Window#setWindowAnimations(int)则系统会从此方法中选择动画集。

请注意,Window#setWindowAnimations#overridePendingTransition(int, int)如果活动开始时ActivityOptions#makeSceneTransitionAnimation(Activity, Pair[]),此方法将被忽略。 另请注意,此方法只能用于自定义跨活动转换,但不能自定义到 Android 11 完全不可自定义的跨任务转换。

适用于 . 的 android.app.Activity.overrideActivityTransition(int, int, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

OverrideActivityTransition(OverrideTransition, Int32, Int32, Int32)

使用此活动自定义活动转换的动画。

[Android.Runtime.Register("overrideActivityTransition", "(IIII)V", "GetOverrideActivityTransition_IIIIHandler", ApiSince=34)]
public virtual void OverrideActivityTransition (Android.App.OverrideTransition overrideType, int enterAnim, int exitAnim, int backgroundColor);
[<Android.Runtime.Register("overrideActivityTransition", "(IIII)V", "GetOverrideActivityTransition_IIIIHandler", ApiSince=34)>]
abstract member OverrideActivityTransition : Android.App.OverrideTransition * int * int * int -> unit
override this.OverrideActivityTransition : Android.App.OverrideTransition * int * int * int -> unit

参数

overrideType
OverrideTransition

OVERRIDE_TRANSITION_OPEN 启动/输入活动时,将使用此动画。 OVERRIDE_TRANSITION_CLOSE 完成/关闭活动时将使用此动画。

enterAnim
Int32

要用于传入活动的动画资源的资源 ID。 不对动画使用 0。

exitAnim
Int32

要用于传出活动的动画资源的资源 ID。 不对动画使用 0。

backgroundColor
Int32

如果动画需要背景,则动画期间用于背景的背景色。 设置为 Color#TRANSPARENT 不替代默认颜色。

属性

注解

使用此活动自定义活动转换的动画。 在活动仍处于活动状态时,可以随时调用此功能。

这是一种更可靠的方法来替代运行时的过渡动画,而无需依赖 #overridePendingTransition(int, int) 它不适用于预测回来。 但是,当系统正在寻找下一个过渡动画时,动画 #overridePendingTransition(int, int) 集仍具有更高的优先级。

仅当活动在播放活动转换时位于任务顶部时,才会选择此方法设置的动画资源。 例如,如果要在启动从活动 A 启动的活动 B 时自定义打开转换,则应在 B 的 onCreate overrideType = OVERRIDE_TRANSITION_OPEN 中调用此方法,因为活动 B 将位于任务顶部。 如果要在完成活动 B 并返回到活动 A 时自定义结束转换,因为 B 仍然高于 A,因此应在活动 B 中使用 overrideType = OVERRIDE_TRANSITION_CLOSE此方法。

如果活动已调用此方法,并且还会设置另一个活动动画, Window#setWindowAnimations(int)则系统会从此方法中选择动画集。

请注意,Window#setWindowAnimations#overridePendingTransition(int, int)如果活动开始时ActivityOptions#makeSceneTransitionAnimation(Activity, Pair[]),此方法将被忽略。 另请注意,此方法只能用于自定义跨活动转换,但不能自定义到 Android 11 完全不可自定义的跨任务转换。

适用于 . 的 android.app.Activity.overrideActivityTransition(int, int, int, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于