SlideTransition class
Animates the position of a widget relative to its normal position.
The translation is expressed as an Offset scaled to the child's size. For
example, an Offset with a dx
of 0.25 will result in a horizontal
translation of one quarter the width of the child.
By default, the offsets are applied in the coordinate system of the canvas (so positive x offsets move the child towards the right). If a textDirection is provided, then the offsets are applied in the reading direction, so in right-to-left text, positive x offsets move towards the left, and in left-to-right text, positive x offsets move towards the right.
Here's an illustration of the SlideTransition widget, with its position animated by a CurvedAnimation set to Curves.elasticIn:
The following code implements the SlideTransition as seen in the video
above:
To create a local project with this code sample, run:
flutter create --sample=widgets.SlideTransition.1 mysample
flutter create --sample=widgets.SlideTransition.1 mysample
The following code implements the SlideTransition as seen in the video
above:
class _MyStatefulWidgetState extends State<MyStatefulWidget> with SingleTickerProviderStateMixin {
AnimationController _controller;
Animation<Offset> _offsetAnimation;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 2),
vsync: this,
)..repeat(reverse: true);
_offsetAnimation = Tween<Offset>(
begin: Offset.zero,
end: const Offset(1.5, 0.0),
).animate(CurvedAnimation(
parent: _controller,
curve: Curves.elasticIn,
));
}
@override
void dispose() {
super.dispose();
_controller.dispose();
}
@override
Widget build(BuildContext context) {
return SlideTransition(
position: _offsetAnimation,
child: const Padding(
padding: EdgeInsets.all(8.0),
child: FlutterLogo(size: 150.0),
),
);
}
}
See also:
- AlignTransition, an animated version of an Align that animates its Align.alignment property.
- PositionedTransition, a widget that animates its child from a start position to an end position over the lifetime of the animation.
- RelativePositionedTransition, a widget that transitions its child's position based on the value of a rectangle relative to a bounding box.
- Inheritance
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- AnimatedWidget
- SlideTransition
Constructors
-
SlideTransition({Key key,
@required Animation< Offset> position,bool transformHitTests: true, TextDirection textDirection, Widget child} ) -
Creates a fractional translation transition. [...]
const
Properties
- child → Widget
-
The widget below this widget in the tree. [...]
final
- hashCode → int
-
The hash code for this object. [...]
@nonVirtual, read-only, inherited
- key → Key
-
Controls how one widget replaces another widget in the tree. [...]
final, inherited
- listenable → Listenable
-
The Listenable to which this widget is listening. [...]
final, inherited
-
position
→ Animation<
Offset> -
The animation that controls the position of the child. [...]
read-only
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
- textDirection → TextDirection
-
The direction to use for the x offset described by the position. [...]
final
- transformHitTests → bool
-
Whether hit testing should be affected by the slide animation. [...]
final
Methods
-
build(
BuildContext context ) → Widget -
Override this method to build widgets that depend on the state of the
listenable (e.g., the current value of the animation).
override
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
-
createState(
) → _AnimatedState -
Subclasses typically do not override this method.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children. [...]
@protected, inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties ) → void -
Add additional properties associated with the node. [...]
inherited
-
noSuchMethod(
Invocation invocation ) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
toDiagnosticsNode(
{String name, DiagnosticsTreeStyle style} ) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep. [...]
inherited
-
toString(
{DiagnosticLevel minLevel: DiagnosticLevel.info} ) → String -
Returns a string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug} ) → String -
Returns a string representation of this node and its descendants. [...]
inherited
-
toStringShallow(
{String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug} ) → String -
Returns a one-line detailed description of the object. [...]
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other ) → bool -
The equality operator. [...]
@nonVirtual, inherited