LayoutTransition 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
此类对 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
- 继承
- 属性
注解
此类对 ViewGroup 对象中的布局更改启用自动动画。 若要为布局容器启用转换,请创建 LayoutTransition 对象,并通过调用 ViewGroup#setLayoutTransition(LayoutTransition)
在任何 ViewGroup 上设置它。 这将导致在向该容器添加或从中删除项时运行默认动画。 若要指定自定义动画,请使用 LayoutTransition#setAnimator(int, Animator) setAnimator()
方法。
这些过渡动画的核心概念之一是,有两种类型的更改会导致过渡,以及由于这些更改而运行的四种不同的动画。 触发转换的更改是添加到容器的项 (称为“显示”转换) 或从容器中删除的项 (也称为“消失”) 。 在 GONE 和 VISIBLE) 之间设置视图 (可见性将触发相同的添加/删除逻辑。 由于这些事件而运行的动画是一个动画要添加的项,一个动画要删除的项,另两个对容器中由于添加/删除出现而更改的其他项进行动画处理。 切换的用户可能需要更改项的不同动画,具体取决于它们是否由于出现或消失事件而发生更改,因此更改事件的每个变体都有一个动画。 此类的大多数 API 都涉及设置这四种情况中使用的动画的基本属性,或为这四种情况中的任何一个或全部设置自定义动画。
默认情况下,消失动画会立即开始,CHANGE_APPEARING动画也一样。 其他动画在延迟设置为动画的默认持续时间之后开始。 此行为有助于一系列切换动画,如下所示:将项添加到布局中时,该容器的其他子级将首先移动 (从而为新项) 创建空间,然后显示的动画将运行以对要添加的项进行动画处理。 相反,当从容器中删除某个项时,将首先运行用于删除它的动画,然后布局中其他子项的动画将运行 (关闭在) 项删除时在布局中创建的间隔。 如果不需要此默认编舞行为, #setDuration(int, long)
则可以根据需要更改任何或所有动画的 和 #setStartDelay(int, long)
。 但请记住,如果在消失动画完成之前启动显示动画,则消失动画将停止,并且将还原消失动画的任何效果。 如果在显示动画完成之前启动消失动画,则显示动画会出现一组类似的效果。
为过渡指定的动画(在过渡对象上设置的默认值和任何自定义动画)仅是模板。 也就是说,这些动画的存在用于保存基本动画属性,例如持续时间、开始延迟和要进行动画处理的属性。 但是,在每次运行时,在设置转换的过程中,会自动设置实际目标对象以及这些属性的开始和结束值。 每个动画都是从原始副本克隆的,然后用 (进行动画处理的目标的动态值填充克隆,例如布局容器中由于布局事件) 而移动的项之一,以及正在更改 (的值,例如该对象的位置和大小) 。 推送到每个动画的实际值取决于为动画指定的属性。 例如,默认CHANGE_APPEARING动画对 、、top
、bottom
right
、 scrollX
和 scrollY
属性进行left
动画处理。 转换开始时,这些属性的值将使用布局前值和布局后值进行更新。 自定义动画将以类似的方式填充要进行动画处理的目标和值,假设它们使用 ObjectAnimator 对象以及目标对象上已知的属性名称。
此类以及容器的关联 XML 标志 animateLayoutChanges=“true”提供了一个简单的实用工具,用于在简单情况下自动执行更改。 由于各个布局级别的相互关系,在嵌套视图层次结构的多个级别上使用 LayoutTransition 可能不起作用。 此外,在添加或删除项的同时滚动的容器可能不适合此实用工具,因为 LayoutTransition 计算的前后位置可能与动画完成时的实际位置不匹配,因为容器在动画运行时滚动。 可以通过将CHANGE_APPEARING和CHANGE_DISAPPEARING动画设置为 null 并适当地设置其他动画的 startDelay 来禁用“更改”动画来解决该特定问题。
的 android.animation.LayoutTransition
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
构造函数
LayoutTransition() |
构造 LayoutTransition 对象。 |
LayoutTransition(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
字段
Appearing |
已过时.
一个标志,指示在容器中显示的项上运行的动画。 |
ChangeAppearing |
已过时.
一个标志,指示在因容器中出现新项而发生更改的项上运行的动画。 |
ChangeDisappearing |
已过时.
一个标志,指示在因项从容器中消失而发生更改的项上运行的动画。 |
Changing |
已过时.
一个标志,指示在那些由于布局更改而发生更改的项上运行的动画,这些项不是由向容器添加或删除的项引起的。 |
Disappearing |
已过时.
一个标志,指示在从容器中消失的项上运行的动画。 |
属性
Class |
返回此 |
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 对象中的布局更改启用自动动画。 |