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