LayoutTransition 类

定义

此类对 ViewGroup 对象中的布局更改启用自动动画。

[Android.Runtime.Register("android/animation/LayoutTransition", DoNotGenerateAcw=true)]
public class LayoutTransition : Java.Lang.Object
[<Android.Runtime.Register("android/animation/LayoutTransition", DoNotGenerateAcw=true)>]
type LayoutTransition = class
    inherit Object
继承
LayoutTransition
属性

注解

此类对 ViewGroup 对象中的布局更改启用自动动画。 若要为布局容器启用转换,请创建 LayoutTransition 对象,并通过调用 ViewGroup#setLayoutTransition(LayoutTransition)在任何 ViewGroup 上设置它。 这将导致在向该容器添加或从中删除项时运行默认动画。 若要指定自定义动画,请使用 LayoutTransition#setAnimator(int, Animator) setAnimator() 方法。

这些过渡动画的核心概念之一是,有两种类型的更改会导致过渡,以及由于这些更改而运行的四种不同的动画。 触发转换的更改是添加到容器的项 (称为“显示”转换) 或从容器中删除的项 (也称为“消失”) 。 在 GONE 和 VISIBLE) 之间设置视图 (可见性将触发相同的添加/删除逻辑。 由于这些事件而运行的动画是一个动画要添加的项,一个动画要删除的项,另两个对容器中由于添加/删除出现而更改的其他项进行动画处理。 切换的用户可能需要更改项的不同动画,具体取决于它们是否由于出现或消失事件而发生更改,因此更改事件的每个变体都有一个动画。 此类的大多数 API 都涉及设置这四种情况中使用的动画的基本属性,或为这四种情况中的任何一个或全部设置自定义动画。

默认情况下,消失动画会立即开始,CHANGE_APPEARING动画也一样。 其他动画在延迟设置为动画的默认持续时间之后开始。 此行为有助于一系列切换动画,如下所示:将项添加到布局中时,该容器的其他子级将首先移动 (从而为新项) 创建空间,然后显示的动画将运行以对要添加的项进行动画处理。 相反,当从容器中删除某个项时,将首先运行用于删除它的动画,然后布局中其他子项的动画将运行 (关闭在) 项删除时在布局中创建的间隔。 如果不需要此默认编舞行为, #setDuration(int, long) 则可以根据需要更改任何或所有动画的 和 #setStartDelay(int, long) 。 但请记住,如果在消失动画完成之前启动显示动画,则消失动画将停止,并且将还原消失动画的任何效果。 如果在显示动画完成之前启动消失动画,则显示动画会出现一组类似的效果。

为过渡指定的动画(在过渡对象上设置的默认值和任何自定义动画)仅是模板。 也就是说,这些动画的存在用于保存基本动画属性,例如持续时间、开始延迟和要进行动画处理的属性。 但是,在每次运行时,在设置转换的过程中,会自动设置实际目标对象以及这些属性的开始和结束值。 每个动画都是从原始副本克隆的,然后用 (进行动画处理的目标的动态值填充克隆,例如布局容器中由于布局事件) 而移动的项之一,以及正在更改 (的值,例如该对象的位置和大小) 。 推送到每个动画的实际值取决于为动画指定的属性。 例如,默认CHANGE_APPEARING动画对 、、topbottomrightscrollXscrollY 属性进行left动画处理。 转换开始时,这些属性的值将使用布局前值和布局后值进行更新。 自定义动画将以类似的方式填充要进行动画处理的目标和值,假设它们使用 ObjectAnimator 对象以及目标对象上已知的属性名称。

此类以及容器的关联 XML 标志 animateLayoutChanges=“true”提供了一个简单的实用工具,用于在简单情况下自动执行更改。 由于各个布局级别的相互关系,在嵌套视图层次结构的多个级别上使用 LayoutTransition 可能不起作用。 此外,在添加或删除项的同时滚动的容器可能不适合此实用工具,因为 LayoutTransition 计算的前后位置可能与动画完成时的实际位置不匹配,因为容器在动画运行时滚动。 可以通过将CHANGE_APPEARING和CHANGE_DISAPPEARING动画设置为 null 并适当地设置其他动画的 startDelay 来禁用“更改”动画来解决该特定问题。

android.animation.LayoutTransitionJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

LayoutTransition()

构造 LayoutTransition 对象。

LayoutTransition(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

字段

Appearing
已过时.

一个标志,指示在容器中显示的项上运行的动画。

ChangeAppearing
已过时.

一个标志,指示在因容器中出现新项而发生更改的项上运行的动画。

ChangeDisappearing
已过时.

一个标志,指示在因项从容器中消失而发生更改的项上运行的动画。

Changing
已过时.

一个标志,指示在那些由于布局更改而发生更改的项上运行的动画,这些项不是由向容器添加或删除的项引起的。

Disappearing
已过时.

一个标志,指示在从容器中消失的项上运行的动画。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsChangingLayout

如果运行与布局相关的属性进行动画处理的动画,则返回 true。

IsRunning

如果此过渡中的任何动画当前正在运行,则返回 true。

JniIdentityHashCode

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
JniPeerMembers

此类对 ViewGroup 对象中的布局更改启用自动动画。

PeerReference

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

TransitionListeners

获取布局更改的当前侦听器列表。

方法

AddChild(ViewGroup, View)

当子视图即将添加到容器时,ViewGroup 将调用此方法。

AddTransitionListener(LayoutTransition+ITransitionListener)

添加一个侦听器,该侦听器将在视图边界因布局处理而更改时调用。

Clone()

创建并返回此对象的副本。

(继承自 Object)
DisableTransitionType(LayoutTransitionType)

为此 LayoutTransition 对象禁用指定的 transitionType。

Dispose()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
Dispose(Boolean)

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
EnableTransitionType(LayoutTransitionType)

为此 LayoutTransition 对象启用指定的 transitionType。

Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
GetAnimator(LayoutTransitionType)

获取在可能运行的转换类型之一期间使用的动画。

GetDuration(LayoutTransitionType)

获取此转换所使用的动画对象之一的持续时间。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetInterpolator(LayoutTransitionType)

获取此转换所使用的动画对象之一上的内插器。

GetStagger(LayoutTransitionType)

获取在更改动画之一期间启动每个动画之间的延迟时间长度。

GetStartDelay(LayoutTransitionType)

获取此转换所使用的动画对象之一的开始延迟。

HideChild(ViewGroup, View)
已过时.

此成员已弃用。

HideChild(ViewGroup, View, ViewStates)

当子视图即将在容器中隐藏时,ViewGroup 将调用此方法。

IsTransitionTypeEnabled(LayoutTransitionType)

返回是否为此 LayoutTransition 对象启用了指定的 transitionType。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
RemoveChild(ViewGroup, View)

当子视图即将从容器中删除时,ViewGroup 将调用此方法。

RemoveTransitionListener(LayoutTransition+ITransitionListener)

删除布局更改的侦听器。

SetAnimateParentHierarchy(Boolean)

此标志控制CHANGE_APPEARING动画还是CHANGE_DISAPPEARING动画也会导致默认更改动画在父层次结构上运行。

SetAnimator(LayoutTransitionType, Animator)

设置在可能运行的转换类型之一期间使用的动画。

SetDuration(Int64)

设置此过渡对象的所有动画要使用的持续时间。

SetDuration(LayoutTransitionType, Int64)

设置此转换所使用的动画对象之一的持续时间。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetInterpolator(LayoutTransitionType, ITimeInterpolator)

设置此切换所使用的动画对象之一上的内插器。

SetStagger(LayoutTransitionType, Int64)

设置在更改动画之一期间启动每个动画之间的延迟时间长度。

SetStartDelay(LayoutTransitionType, Int64)

设置此转换所使用的动画对象之一的开始延迟。

ShowChild(ViewGroup, View)
已过时.

此成员已弃用。

ShowChild(ViewGroup, View, ViewStates)

当子视图即将在容器中可见时,ViewGroup 将调用此方法。

ToArray<T>()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

事件

EndTransition

此类对 ViewGroup 对象中的布局更改启用自动动画。

StartTransition

此类对 ViewGroup 对象中的布局更改启用自动动画。

显式接口实现

IJavaPeerable.Disposed()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.Finalized()

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类对 ViewGroup 对象中的布局更改启用自动动画。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此类对 ViewGroup 对象中的布局更改启用自动动画。

GetJniTypeName(IJavaPeerable)

此类对 ViewGroup 对象中的布局更改启用自动动画。

适用于