Package icyllis.modernui.transition
Class TransitionManager
java.lang.Object
icyllis.modernui.transition.TransitionManager
This class manages the set of transitions that fire when there is a
change of
Scene
. To use the manager, add scenes along with
transition objects with calls to setTransition(Scene, Transition)
or setTransition(Scene, Scene, Transition)
. Setting specific
transitions for scene changes is not required; by default, a Scene change
will use AutoTransition
to do something reasonable for most
situations. Specifying other transitions for particular scene changes is
only necessary if the application wants different transition behavior
in these situations.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
beginDelayedTransition
(ViewGroup sceneRoot) Convenience method to animate, using the default transition, to a new scene defined by all changes within the given scene root between calling this method and the next rendering frame.static void
beginDelayedTransition
(ViewGroup sceneRoot, Transition transition) Convenience method to animate to a new scene defined by all changes within the given scene root between calling this method and the next rendering frame.static void
endTransitions
(ViewGroup sceneRoot) Ends all pending and ongoing transitions on the specified scene root.static void
Convenience method to simply change to the given scene using the default transition for TransitionManager.static void
go
(Scene scene, Transition transition) Convenience method to simply change to the given scene using the given transition.void
setTransition
(Scene fromScene, Scene toScene, Transition transition) Sets a specific transition to occur when the given pair of scenes is exited/entered.void
setTransition
(Scene scene, Transition transition) Sets a specific transition to occur when the given scene is entered.void
transitionTo
(Scene scene) Change to the given scene, using the appropriate transition for this particular scene change (as specified to the TransitionManager, or the default if no such transition exists).
-
Constructor Details
-
TransitionManager
public TransitionManager()
-
-
Method Details
-
setTransition
Sets a specific transition to occur when the given scene is entered.- Parameters:
scene
- The scene which, when applied, will cause the given transition to run.transition
- The transition that will play when the given scene is entered. A value of null will result in the default behavior of using the default transition instead.
-
setTransition
public void setTransition(@Nonnull Scene fromScene, @Nonnull Scene toScene, @Nullable Transition transition) Sets a specific transition to occur when the given pair of scenes is exited/entered.- Parameters:
fromScene
- The scene being exited when the given transition will be runtoScene
- The scene being entered when the given transition will be runtransition
- The transition that will play when the given scene is entered. A value of null will result in the default behavior of using the default transition instead.
-
transitionTo
Change to the given scene, using the appropriate transition for this particular scene change (as specified to the TransitionManager, or the default if no such transition exists).- Parameters:
scene
- The Scene to change to
-
go
Convenience method to simply change to the given scene using the default transition for TransitionManager.- Parameters:
scene
- The Scene to change to
-
go
Convenience method to simply change to the given scene using the given transition.Passing in
null
for the transition parameter will result in the scene changing without any transition running, and is equivalent to callingScene.exit()
on the scene root's current scene, followed byScene.enter()
on the scene specified by thescene
parameter.- Parameters:
scene
- The Scene to change totransition
- The transition to use for this scene change. A value of null causes the scene change to happen with no transition.
-
beginDelayedTransition
Convenience method to animate, using the default transition, to a new scene defined by all changes within the given scene root between calling this method and the next rendering frame. Equivalent to callingbeginDelayedTransition(ViewGroup, Transition)
with a value ofnull
for thetransition
parameter.- Parameters:
sceneRoot
- The root of the View hierarchy to run the transition on.
-
beginDelayedTransition
public static void beginDelayedTransition(@Nonnull ViewGroup sceneRoot, @Nullable Transition transition) Convenience method to animate to a new scene defined by all changes within the given scene root between calling this method and the next rendering frame. Calling this method causes TransitionManager to capture current values in the scene root and then post a request to run a transition on the next frame. At that time, the new values in the scene root will be captured and changes will be animated. There is no need to create a Scene; it is implied by changes which take place between calling this method and the next frame when the transition begins.Calling this method several times before the next frame (for example, if unrelated code also wants to make dynamic changes and run a transition on the same scene root), only the first call will trigger capturing values and exiting the current scene. Subsequent calls to the method with the same scene root during the same frame will be ignored.
Passing in
null
for the transition parameter will cause the TransitionManager to use its default transition.- Parameters:
sceneRoot
- The root of the View hierarchy to run the transition on.transition
- The transition to use for this change. A value of null causes the TransitionManager to use the default transition.
-
endTransitions
Ends all pending and ongoing transitions on the specified scene root.- Parameters:
sceneRoot
- The root of the View hierarchy to end transitions on.
-