belongs to Maven artifact com.android.support:transition:28.0.0-alpha1
Transition
public
abstract
class
Transition
extends Object
implements
Cloneable
java.lang.Object | |
↳ | android.support.transition.Transition |
![]() |
![]() |
A Transition holds information about animations that will be run on its
targets during a scene change. Subclasses of this abstract class may
choreograph several child transitions (TransitionSet
or they may
perform custom animations themselves. Any Transition has two main jobs:
(1) capture property values, and (2) play animations based on changes to
captured property values. A custom transition knows what property values
on View objects are of interest to it, and also knows how to animate
changes to those values. For example, the Fade
transition tracks
changes to visibility-related properties and is able to construct and run
animations that fade items in or out based on changes to those properties.
Note: Transitions may not work correctly with either SurfaceView
or TextureView
, due to the way that these views are displayed
on the screen. For SurfaceView, the problem is that the view is updated from
a non-UI thread, so changes to the view due to transitions (such as moving
and resizing the view) may be out of sync with the display inside those bounds.
TextureView is more compatible with transitions in general, but some
specific transitions (such as Fade
) may not be compatible
with TextureView because they rely on ViewOverlay
functionality, which does not currently work with TextureView.
Transitions can be declared in XML resource files inside the res/transition
directory. Transition resources consist of a tag name for one of the Transition
subclasses along with attributes to define some of the attributes of that transition.
For example, here is a minimal resource file that declares a ChangeBounds
transition:
<changeBounds/>
Note that attributes for the transition are not required, just as they are
optional when declared in code; Transitions created from XML resources will use
the same defaults as their code-created equivalents. Here is a slightly more
elaborate example which declares a TransitionSet
transition with
ChangeBounds
and Fade
child transitions:
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android" android:transitionOrdering="sequential"> <changeBounds/> <fade android:fadingMode="fade_out"> <targets> <target android:targetId="@id/grayscaleContainer"/> </targets> </fade> </transitionSet>
In this example, the transitionOrdering attribute is used on the TransitionSet
object to change from the default ORDERING_TOGETHER
behavior
to be ORDERING_SEQUENTIAL
instead. Also, the Fade
transition uses a fadingMode of OUT
instead of the default
out-in behavior. Finally, note the use of the targets
sub-tag, which
takes a set of {code target} tags, each of which lists a specific targetId
which
this transition acts upon. Use of targets is optional, but can be used to either limit the time
spent checking attributes on unchanging views, or limiting the types of animations run on
specific views. In this case, we know that only the grayscaleContainer
will be
disappearing, so we choose to limit the Fade
transition to only that view.
Summary
Nested classes | |
---|---|
class |
Transition.EpicenterCallback
Class to get the epicenter of Transition. |
interface |
Transition.TransitionListener
A transition listener receives notifications from a transition. |
Constants | |
---|---|
int |
MATCH_ID
With |
int |
MATCH_INSTANCE
With |
int |
MATCH_ITEM_ID
With |
int |
MATCH_NAME
With |
Public constructors | |
---|---|
Transition()
Constructs a Transition object with no target objects. |
|
Transition(Context context, AttributeSet attrs)
Perform inflation from XML and apply a class-specific base style from a theme attribute or style resource. |
Public methods | |
---|---|
Transition
|
addListener(Transition.TransitionListener listener)
Adds a listener to the set of listeners that are sent events through the life of an animation, such as start, repeat, and end. |
Transition
|
addTarget(View target)
Sets the target view instances that this Transition is interested in animating. |
Transition
|
addTarget(int targetId)
Adds the id of a target view that this Transition is interested in animating. |
Transition
|
addTarget(Class targetType)
Adds the Class of a target view that this Transition is interested in animating. |
Transition
|
addTarget(String targetName)
Adds the transitionName of a target view that this Transition is interested in animating. |
abstract
void
|
captureEndValues(TransitionValues transitionValues)
Captures the values in the end scene for the properties that this transition monitors. |
abstract
void
|
captureStartValues(TransitionValues transitionValues)
Captures the values in the start scene for the properties that this transition monitors. |
Transition
|
clone()
|
Animator
|
createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues)
This method creates an animation that will be run for this transition given the information in the startValues and endValues structures captured earlier for the start and end scenes. |
Transition
|
excludeChildren(int targetId, boolean exclude)
Whether to add the children of the given id to the list of targets to exclude from this transition. |
Transition
|
excludeChildren(Class type, boolean exclude)
Whether to add the given type to the list of types whose children should be excluded from this transition. |
Transition
|
excludeChildren(View target, boolean exclude)
Whether to add the children of given target to the list of target children to exclude from this transition. |
Transition
|
excludeTarget(View target, boolean exclude)
Whether to add the given target to the list of targets to exclude from this transition. |
Transition
|
excludeTarget(Class type, boolean exclude)
Whether to add the given type to the list of types to exclude from this transition. |
Transition
|
excludeTarget(String targetName, boolean exclude)
Whether to add the given transitionName to the list of target transitionNames to exclude from this transition. |
Transition
|
excludeTarget(int targetId, boolean exclude)
Whether to add the given id to the list of target ids to exclude from this transition. |
long
|
getDuration()
Returns the duration set on this transition. |
Rect
|
getEpicenter()
Returns the epicenter as specified by the
|
Transition.EpicenterCallback
|
getEpicenterCallback()
Returns the callback used to find the epicenter of the Transition. |
TimeInterpolator
|
getInterpolator()
Returns the interpolator set on this transition. |
String
|
getName()
Returns the name of this Transition. |
PathMotion
|
getPathMotion()
Returns the algorithm object used to interpolate along two dimensions. |
TransitionPropagation
|
getPropagation()
Returns the |
long
|
getStartDelay()
Returns the startDelay set on this transition. |
List<Integer>
|
getTargetIds()
Returns the array of target IDs that this transition limits itself to tracking and animating. |
List<String>
|
getTargetNames()
Returns the list of target transitionNames that this transition limits itself to tracking and animating. |
List<Class>
|
getTargetTypes()
Returns the list of target transitionNames that this transition limits itself to tracking and animating. |
List<View>
|
getTargets()
Returns the array of target views that this transition limits itself to tracking and animating. |
String[]
|
getTransitionProperties()
Returns the set of property names used stored in the |
TransitionValues
|
getTransitionValues(View view, boolean start)
This method can be called by transitions to get the TransitionValues for any particular view during the transition-playing process. |
boolean
|
isTransitionRequired(TransitionValues startValues, TransitionValues endValues)
Returns whether or not the transition should create an Animator, based on the values
captured during |
Transition
|
removeListener(Transition.TransitionListener listener)
Removes a listener from the set listening to this animation. |
Transition
|
removeTarget(int targetId)
Removes the given targetId from the list of ids that this Transition is interested in animating. |
Transition
|
removeTarget(View target)
Removes the given target from the list of targets that this Transition is interested in animating. |
Transition
|
removeTarget(String targetName)
Removes the given targetName from the list of transitionNames that this Transition is interested in animating. |
Transition
|
removeTarget(Class target)
Removes the given target from the list of targets that this Transition is interested in animating. |
Transition
|
setDuration(long duration)
Sets the duration of this transition. |
void
|
setEpicenterCallback(Transition.EpicenterCallback epicenterCallback)
Sets the callback to use to find the epicenter of a Transition. |
Transition
|
setInterpolator(TimeInterpolator interpolator)
Sets the interpolator of this transition. |
void
|
setMatchOrder(int... matches)
Sets the order in which Transition matches View start and end values. |
void
|
setPathMotion(PathMotion pathMotion)
Sets the algorithm used to calculate two-dimensional interpolation. |
void
|
setPropagation(TransitionPropagation transitionPropagation)
Sets the method for determining Animator start delays. |
Transition
|
setStartDelay(long startDelay)
Sets the startDelay of this transition. |
String
|
toString()
|
Inherited methods | |
---|---|
![]()
java.lang.Object
|
Constants
MATCH_ID
int MATCH_ID
With setMatchOrder(int)
, chooses to match by
getId()
. Negative IDs will not be matched.
Constant Value: 3 (0x00000003)
MATCH_INSTANCE
int MATCH_INSTANCE
With setMatchOrder(int)
, chooses to match by View instance.
Constant Value: 1 (0x00000001)
MATCH_ITEM_ID
int MATCH_ITEM_ID
With setMatchOrder(int)
, chooses to match by the Adapter
item id. When hasStableIds()
returns false, no match
will be made for items.
Constant Value: 4 (0x00000004)
MATCH_NAME
int MATCH_NAME
With setMatchOrder(int)
, chooses to match by
getTransitionName()
. Null names will not be matched.
Constant Value: 2 (0x00000002)
Public constructors
Transition
Transition ()
Constructs a Transition object with no target objects. A transition with no targets defaults to running on all target objects in the scene hierarchy (if the transition is not contained in a TransitionSet), or all target objects passed down from its parent (if it is in a TransitionSet).
Transition
Transition (Context context, AttributeSet attrs)
Perform inflation from XML and apply a class-specific base style from a theme attribute or style resource. This constructor of Transition allows subclasses to use their own base style when they are inflating.
Parameters | |
---|---|
context |
Context : The Context the transition is running in, through which it can
access the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the transition.
|
Public methods
addListener
Transition addListener (Transition.TransitionListener listener)
Adds a listener to the set of listeners that are sent events through the life of an animation, such as start, repeat, and end.
Parameters | |
---|---|
listener |
Transition.TransitionListener : the listener to be added to the current set of listeners
for this animation. |
Returns | |
---|---|
Transition |
This transition object. |
addTarget
Transition addTarget (View target)
Sets the target view instances that this Transition is interested in animating. By default, there are no targets, and a Transition will listen for changes on every view in the hierarchy below the sceneRoot of the Scene being transitioned into. Setting targets constrains the Transition to only listen for, and act on, these views. All other views will be ignored.
The target list is like the targetId
list except this list specifies the actual View instances, not the ids
of the views. This is an important distinction when scene changes involve
view hierarchies which have been inflated separately; different views may
share the same id but not actually be the same instance. If the transition
should treat those views as the same, then addTarget(int)
should be used
instead of addTarget(View)
. If, on the other hand, scene changes involve
changes all within the same view hierarchy, among views which do not
necessarily have ids set on them, then the target list of views may be more
convenient.
Parameters | |
---|---|
target |
View : A View on which the Transition will act, must be non-null. |
Returns | |
---|---|
Transition |
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); |
See also:
addTarget
Transition addTarget (int targetId)
Adds the id of a target view that this Transition is interested in animating. By default, there are no targetIds, and a Transition will listen for changes on every view in the hierarchy below the sceneRoot of the Scene being transitioned into. Setting targetIds constrains the Transition to only listen for, and act on, views with these IDs. Views with different IDs, or no IDs whatsoever, will be ignored.
Note that using ids to specify targets implies that ids should be unique within the view hierarchy underneath the scene root.
Parameters | |
---|---|
targetId |
int : The id of a target view, must be a positive number. |
Returns | |
---|---|
Transition |
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); |
See also:
addTarget
Transition addTarget (Class targetType)
Adds the Class of a target view that this Transition is interested in animating. By default, there are no targetTypes, and a Transition will listen for changes on every view in the hierarchy below the sceneRoot of the Scene being transitioned into. Setting targetTypes constrains the Transition to only listen for, and act on, views with these classes. Views with different classes will be ignored.
Note that any View that can be cast to targetType will be included, so
if targetType is View.class
, all Views will be included.
Parameters | |
---|---|
targetType |
Class : The type to include when running this transition. |
Returns | |
---|---|
Transition |
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); |
addTarget
Transition addTarget (String targetName)
Adds the transitionName of a target view that this Transition is interested in animating. By default, there are no targetNames, and a Transition will listen for changes on every view in the hierarchy below the sceneRoot of the Scene being transitioned into. Setting targetNames constrains the Transition to only listen for, and act on, views with these transitionNames. Views with different transitionNames, or no transitionName whatsoever, will be ignored.
Note that transitionNames should be unique within the view hierarchy.
Parameters | |
---|---|
targetName |
String : The transitionName of a target view, must be non-null. |
Returns | |
---|---|
Transition |
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); |
See also:
captureEndValues
void captureEndValues (TransitionValues transitionValues)
Captures the values in the end scene for the properties that this
transition monitors. These values are then passed as the endValues
structure in a later call to
createAnimator(ViewGroup, TransitionValues, TransitionValues)
.
The main concern for an implementation is what the
prop