public class TransitionSet
extends Transition
java.lang.Object | ||
↳ | android.transition.Transition | |
↳ | android.transition.TransitionSet |
Known Direct Subclasses |
TransitionSet是子过渡的父代(包括其他TransitionSet)。 使用TransitionSets可以实现更复杂的转换编排,其中一些组播放ORDERING_TOGETHER
,其他播放ORDERING_SEQUENTIAL
。 例如, AutoTransition
使用TransitionSet顺序播放淡入淡出(Fade.OUT),然后是ChangeBounds
,然后是淡入淡出(Fade.OUT)转换。
通过使用标签transitionSet
以及标准属性TransitionSet
和Transition
,可以在资源文件中描述Transition
。 可以通过在封闭的transitionSet
标签内添加这些子标签来加载TransitionSet对象的子过渡。 例如,下面的xml描述了一个TransitionSet,它在受影响的视图目标上播放一个淡入淡出,然后是一个ChangeBounds转换:
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android" android:transitionOrdering="sequential"> <fade/> <changeBounds/> </transitionSet>
Inherited XML attributes |
|
---|---|
From class android.transition.Transition
|
Constants |
|
---|---|
int |
ORDERING_SEQUENTIAL 一个标志,用于表示该组的儿童转换应该按顺序播放; 当一个孩子转换结束时,下一个孩子转换开始。 |
int |
ORDERING_TOGETHER 一个标志,用于表示该组的子过渡应该同时开始。 |
Inherited constants |
---|
From class android.transition.Transition
|
Public constructors |
|
---|---|
TransitionSet() 构造一个空的转换集。 |
|
TransitionSet(Context context, AttributeSet attrs) |
Public methods |
|
---|---|
TransitionSet |
addListener(Transition.TransitionListener listener) 将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。 |
TransitionSet |
addTarget(View target) 设置此Transition对动画制作感兴趣的目标视图实例。 |
TransitionSet |
addTarget(int targetId) 添加此Transition对动画感兴趣的目标视图的ID。 |
TransitionSet |
addTarget(Class targetType) 添加此Transition对动画感兴趣的目标视图的Class。 |
TransitionSet |
addTarget(String targetName) 添加此Transition对动画感兴趣的目标视图的transitionName。 |
TransitionSet |
addTransition(Transition transition) 将子过渡添加到此集。 |
void |
captureEndValues(TransitionValues transitionValues) 在结束场景中捕获此转换监视的属性的值。 |
void |
captureStartValues(TransitionValues transitionValues) 捕获此转场监视的属性在开始场景中的值。 |
TransitionSet |
clone() 创建并返回此对象的副本。 |
Transition |
excludeTarget(View target, boolean exclude) 是否将给定目标添加到要从此转换中排除的目标列表。 |
Transition |
excludeTarget(Class type, boolean exclude) 是否将给定类型添加到要从此过渡中排除的类型列表。 |
Transition |
excludeTarget(String targetName, boolean exclude) 是否将给定的transitionName添加到目标transitionNames的列表中以从此过渡中排除。 |
Transition |
excludeTarget(int targetId, boolean exclude) 是否将给定的ID添加到目标ID列表中以从此过渡中排除。 |
int |
getOrdering() 返回此TransitionSet的排序。 |
Transition |
getTransitionAt(int index) 返回TransitionSet中指定位置的子Transition。 |
int |
getTransitionCount() 返回TransitionSet中子变换的数量。 |
TransitionSet |
removeListener(Transition.TransitionListener listener) 从侦听此动画的集合中删除侦听器。 |
TransitionSet |
removeTarget(int targetId) 从该Transition对动画感兴趣的id列表中移除给定的targetId。 |
TransitionSet |
removeTarget(View target) 从该转换对动画感兴趣的目标列表中删除给定的目标。 |
TransitionSet |
removeTarget(String target) 从Transition转换对动画感兴趣的transitionNames列表中删除给定的targetName。 |
TransitionSet |
removeTarget(Class target) 从该转换对动画感兴趣的目标列表中删除给定的目标。 |
TransitionSet |
removeTransition(Transition transition) 从该组中删除指定的子过渡。 |
TransitionSet |
setDuration(long duration) 在TransitionSet上设置非负的持续时间会导致所有子过渡(当前和将来)继承此持续时间。 |
void |
setEpicenterCallback(Transition.EpicenterCallback epicenterCallback) 设置回调以用于查找转场的震中。 |
TransitionSet |
setInterpolator(TimeInterpolator interpolator) 设置此转换的插补器。 |
TransitionSet |
setOrdering(int ordering) 设置此套儿童转场的播放顺序。 |
void |
setPathMotion(PathMotion pathMotion) 设置用于计算二维插值的算法。 |
void |
setPropagation(TransitionPropagation propagation) 设置确定动画制作者启动延迟的方法。 |
TransitionSet |
setStartDelay(long startDelay) 设置此转换的startDelay。 |
Inherited methods |
|
---|---|
From class android.transition.Transition
|
|
From class java.lang.Object
|
int ORDERING_SEQUENTIAL
一个标志,用于表示该组的儿童转换应该按顺序播放; 当一个孩子转换结束时,下一个孩子转换开始。 请注意,转换不会结束,直到它的所有实例(在转换的所有适用目标上播放)结束。
常数值:1(0x00000001)
int ORDERING_TOGETHER
一个标志,用于表示该组的子过渡应该同时开始。
常量值:0(0x00000000)
TransitionSet ()
构造一个空的转换集。 通过调用addTransition(Transition)
)}将子过渡添加到集合中。 默认情况下,子过渡将播放together
。
TransitionSet (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
TransitionSet addListener (Transition.TransitionListener listener)
将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。
Parameters | |
---|---|
listener |
Transition.TransitionListener : the listener to be added to the current set of listeners for this animation. |
Returns | |
---|---|
TransitionSet |
This transition object. |
TransitionSet addTarget (View target)
设置此Transition对动画制作感兴趣的目标视图实例。 默认情况下,没有目标,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设定目标会限制转换只能监听并执行这些视图。 所有其他视图将被忽略。
目标列表类似于targetId
列表,不同之targetId
于此列表指定了实际的View实例,而不是视图的ID。 当场景变化涉及单独膨胀的视图层次时,这是一个重要的区别; 不同的视图可以共享相同的ID,但实际上不是相同的实例。 如果过渡应该把这些意见相同,则addTarget(int)
应该用来代替addTarget(View)
。 另一方面,如果场景变化涉及全部在相同视图层次内的变化,则在不一定具有对其设置ID的视图中,则目标视图列表可能更方便。
Parameters | |
---|---|
target |
View : A View on which the Transition will act, must be non-null. |
Returns | |
---|---|
TransitionSet |
The Transition to which the target is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someView); |
TransitionSet addTarget (int targetId)
添加此Transition对动画感兴趣的目标视图的ID。 默认情况下,没有targetIds,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetIds会限制转换仅侦听并操作带有这些ID的视图。 具有不同ID的视图或任何ID都将被忽略。
请注意,使用ID指定目标意味着ID应该在场景根下的视图层次结构中是唯一的。
Parameters | |
---|---|
targetId |
int : The id of a target view, must be a positive number. |
Returns | |
---|---|
TransitionSet |
The Transition to which the targetId is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someId); |
TransitionSet addTarget (Class targetType)
添加此Transition对动画感兴趣的目标视图的Class。 默认情况下,没有targetTypes,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetTypes会限制Transition仅侦听这些类并对其执行操作。 不同类别的视图将被忽略。
请注意,任何可以转换为targetType的视图都将包含在内,因此如果targetType为 View.class
,则将包含所有视图。
Parameters | |
---|---|
targetType |
Class : The type to include when running this transition. |
Returns | |
---|---|
TransitionSet |
The Transition to which the target class was added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(ImageView.class); |
TransitionSet addTarget (String targetName)
添加此Transition对动画感兴趣的目标视图的transitionName。 默认情况下,没有targetNames,Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetNames会将转换限制为仅使用这些transitionNames来侦听和操作视图。 具有不同transitionNames的视图或任何transitionName都将被忽略。
请注意,transitionNames在视图层次结构中应该是唯一的。
Parameters | |
---|---|
targetName |
String : The transitionName of a target view, must be non-null. |
Returns | |
---|---|
TransitionSet |
The Transition to which the target transitionName is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someName); |
TransitionSet addTransition (Transition transition)
将子过渡添加到此集。 除了ordering
属性之外,相对于添加的其他子转换添加此子转换的顺序决定了转换开始的顺序。
如果此transitionSet上设置了duration
,则子过渡将继承该持续时间。 假定转换最多有一个transitionSet父项。
Parameters | |
---|---|
transition |
Transition : A non-null child transition to be added to this set. |
Returns | |
---|---|
TransitionSet |
This transitionSet object. |
void captureEndValues (TransitionValues transitionValues)
在结束场景中捕获此转换监视的属性的值。 然后这些值作为endValues结构传递给createAnimator(ViewGroup, TransitionValues, TransitionValues)
。 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)
方法后期进行比较,以确定应该运行哪些动画(如果有的话)。
子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。
Parameters | |
---|---|
transitionValues |
TransitionValues : The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()) . The target view will already be stored in the transitionValues structure when this method is called. |
void captureStartValues (TransitionValues transitionValues)
捕获此转场监视的属性在开始场景中的值。 然后这些值作为startValues结构在以后的调用中传递给createAnimator(ViewGroup, TransitionValues, TransitionValues)
。 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)
方法后期进行比较,以确定应该运行哪些动画(如果有的话)。
子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。
Parameters | |
---|---|
transitionValues |
TransitionValues : The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()) . The target view will already be stored in the transitionValues structure when this method is called. |
TransitionSet clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
true
, this is not an absolute requirement.
按照惯例,返回的对象应该通过调用super.clone
获得。 如果一个类和它的所有超类( Object
除外)都遵守这个约定,那么就是这样的情况x.clone().getClass() == x.getClass()
。
按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 为了实现这种独立性,可能需要在返回之前修改super.clone
返回的对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类只包含原始字段或对不可变对象的引用,那么通常情况下,不需要修改super.clone
返回的对象中的任何字段。
类Object
的方法clone
执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable
,则引发CloneNotSupportedException
。 请注意,所有数组都被认为实现了接口Cloneable
并且数组类型T[]
的clone
方法的返回类型是T[]
,其中T是任何引用或基本类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。
类 Object
本身并不实现接口 Cloneable
,所以在类 Object
的对象上调用 clone
方法将导致在运行时抛出异常。
Returns | |
---|---|
TransitionSet |
a clone of this instance. |
Transition excludeTarget (View target, boolean exclude)
是否将给定目标添加到要从此转换中排除的目标列表。 exclude
参数指定是否应将目标添加到排除列表或从排除列表中删除。
排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或它们的实例引用,或者视图的Class(例如, Spinner
)来Spinner
。
Parameters | |
---|---|
target |
View : The target to ignore when running this transition. |
exclude |
boolean : Whether to add the target to or remove the target from the current list of excluded targets. |
Returns | |
---|---|
Transition |
This transition object. |
Transition excludeTarget (Class type, boolean exclude)
是否将给定类型添加到要从此过渡中排除的类型列表。 exclude
参数指定是否应将目标类型添加到排除列表或从排除列表中删除。
排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或者它们的实例引用,或者该视图的Class(例如, Spinner
)来Spinner
。
Parameters | |
---|---|
type |
Class : The type to ignore when running this transition. |
exclude |
boolean : Whether to add the target type to or remove it from the current list of excluded target types. |
Returns | |
---|---|
Transition |
This transition object. |
Transition excludeTarget (String targetName, boolean exclude)
是否将给定的transitionName添加到目标transitionNames的列表中以从此过渡中排除。 exclude
参数指定是否应将目标添加到排除列表或从排除列表中删除。
排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,它们的实例引用,它们的transitionName或视图的Class来排除(例如, Spinner
)。
Parameters | |
---|---|
targetName |
String : The name of a target to ignore when running this transition. |
exclude |
boolean : Whether to add the target to or remove the target from the current list of excluded targets. |
Returns | |
---|---|
Transition |
This transition object. |
Transition excludeTarget (int targetId, boolean exclude)
是否将给定的ID添加到目标ID列表中以从此过渡中排除。 参数exclude
指定是否应将目标添加到排除列表或从排除列表中删除。
排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或它们的实例引用或该视图的Class(例如, Spinner
) Spinner
。
Parameters | |
---|---|
targetId |
int : The id of a target to ignore when running this transition. |
exclude |
boolean : Whether to add the target to or remove the target from the current list of excluded targets. |
Returns | |
---|---|
Transition |
This transition object. |
int getOrdering ()
返回此TransitionSet的排序。 默认情况下,该值为ORDERING_TOGETHER
。
Returns | |
---|---|
int |
ORDERING_TOGETHER if child transitions will play at the same time, ORDERING_SEQUENTIAL if they will play in sequence. |
也可以看看:
Transition getTransitionAt (int index)
返回TransitionSet中指定位置的子Transition。
Parameters | |
---|---|
index |
int : The position of the Transition to retrieve. |
Returns | |
---|---|
Transition |
int getTransitionCount ()
返回TransitionSet中子变换的数量。
Returns | |
---|---|
int |
The number of child transitions in the TransitionSet. |
TransitionSet removeListener (Transition.TransitionListener listener)
从侦听此动画的集合中删除侦听器。
Parameters | |
---|---|
listener |
Transition.TransitionListener : the listener to be removed from the current set of listeners for this transition. |
Returns | |
---|---|
TransitionSet |
This transition object. |
TransitionSet removeTarget (int targetId)
从该Transition对动画感兴趣的id列表中移除给定的targetId。
Parameters | |
---|---|
targetId |
int : The id of a target view, must be a positive number. |
Returns | |
---|---|
TransitionSet |
The Transition from which the targetId is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTargetId(someId); |
TransitionSet removeTarget (View target)
从该转换对动画感兴趣的目标列表中删除给定的目标。
Parameters | |
---|---|
target |
View : The target view, must be non-null. |
Returns | |
---|---|
TransitionSet |
Transition The Transition from which the target is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTarget(someView); |
TransitionSet removeTarget (String target)
从Transition转换对动画感兴趣的transitionNames列表中删除给定的targetName。
Parameters | |
---|---|
target |
String : The transitionName of a target view, must not be null. |
Returns | |
---|---|
TransitionSet |
The Transition from which the targetName is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTargetName(someName); |
TransitionSet removeTarget (Class target)
从该转换对动画感兴趣的目标列表中删除给定的目标。
Parameters | |
---|---|
target |
Class : The type of the target view, must be non-null. |
Returns | |
---|---|
TransitionSet |
Transition The Transition from which the target is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTarget(someType); |
TransitionSet removeTransition (Transition transition)
从该组中删除指定的子过渡。
Parameters | |
---|---|
transition |
Transition : The transition to be removed. |
Returns | |
---|---|
TransitionSet |
This transitionSet object. |
TransitionSet setDuration (long duration)
在TransitionSet上设置非负的持续时间会导致所有子过渡(当前和将来)继承此持续时间。
Parameters | |
---|---|
duration |
long : The length of the animation, in milliseconds. |
Returns | |
---|---|
TransitionSet |
This transitionSet object. |
void setEpicenterCallback (Transition.EpicenterCallback epicenterCallback)
设置回调以用于查找转场的震中。 空值表示Transition中没有震中,onGetEpicenter()将返回null。 诸如Explode
类的Explode
使用一个点或Rect来定位行进方向。 这被称为过渡的中心,通常集中在一个触摸的视图。 Transition.EpicenterCallback
允许转换在转换期间动态检索震中。
Parameters | |
---|---|
epicenterCallback |
Transition.EpicenterCallback : The callback to use to find the epicenter of the Transition. |
TransitionSet setInterpolator (TimeInterpolator interpolator)
设置此转换的插补器。 默认情况下,插补器为空,这意味着由转换创建的Animator将拥有自己的指定插补器。 如果设置了Transition的插补器,则该插补器将覆盖Animator插补器。
Parameters | |
---|---|
interpolator |
TimeInterpolator : The time interpolator used by the transition |
Returns | |
---|---|
TransitionSet |
This transition object. |
TransitionSet setOrdering (int ordering)
设置此套儿童转场的播放顺序。
Parameters | |
---|---|
ordering |
int : ORDERING_TOGETHER to play this set's child transitions together, ORDERING_SEQUENTIAL to play the child transitions in sequence. |
Returns | |
---|---|
TransitionSet |
This transitionSet object. |
void setPathMotion (PathMotion pathMotion)
设置用于计算二维插值的算法。
诸如ChangeBounds
转换通常在开始和结束位置之间的直线路径中移动视图。 希望让这些运动以曲线形式移动的应用程序可以通过扩展PathMotion并实现getPath(float, float, float, float)
来改变View在二维中的内插getPath(float, float, float, float)
。
在用XML描述时,为路径运动使用嵌套的XML标记。 它可以是内置标签arcMotion
或patternPathMotion
,也可以是使用pathMotion
的定制PathMotion, class
由完全描述的类名称归属。 例如:
<changeBounds>
<pathMotion class="my.app.transition.MyPathMotion"/>
</changeBounds>
要么
<changeBounds>
<arcMotion android:minimumHorizontalAngle="15"
android:minimumVerticalAngle="0" android:maximumAngle="90"/>
</changeBounds>
Parameters | |
---|---|
pathMotion |
PathMotion : Algorithm object to use for determining how to interpolate in two dimensions. If null, a straight-path algorithm will be used. |
void setPropagation (TransitionPropagation propagation)
设置确定动画制作者启动延迟的方法。 当一个转换影响像Explode
或Slide
这样的几个视图时,可能需要有一个“波前”效应,这样动画开始延迟取决于视图的位置。 TransitionPropagation指定如何计算启动延迟。
Parameters | |
---|---|
propagation |
TransitionPropagation : The class used to determine the start delay of Animators created by this Transition. A null value indicates that no delay should be used. |
TransitionSet setStartDelay (long startDelay)
设置此转换的startDelay。 默认情况下,没有延迟(由负数表示),这意味着由过渡创建的Animator将拥有自己的指定startDelay。 如果设置了延迟时间,则延迟将覆盖Animator延迟。
Parameters | |
---|---|
startDelay |
long : The length of the delay, in milliseconds. |
Returns | |
---|---|
TransitionSet |
This transition object. |