build method
Animates a widget to slide from either direction. Using AnimatedBuilder for animation
Implementation
@override
Widget build(BuildContext context) {
var yTranslation = 0.0, xTranslation = 0.0;
final slideAnimation = Tween(begin: 0.0, end: 1.0).animate(
CurvedAnimation(
parent: widget.animationController,
curve: Interval((1 / widget.itemCount) * widget.position, 1.0, curve: Curves.fastOutSlowIn),
),
);
widget.animationController.forward();
return AnimatedBuilder(
animation: widget.animationController,
builder: (context, child) {
if (widget.slideDirection == SlideDirection.fromTop) {
yTranslation = -50 * (1.0 - slideAnimation.value);
} else if (widget.slideDirection == SlideDirection.fromBottom) {
yTranslation = 50 * (1.0 - slideAnimation.value);
} else if (widget.slideDirection == SlideDirection.fromRight) {
xTranslation = 400 * (1.0 - slideAnimation.value);
} else {
xTranslation = -400 * (1.0 - slideAnimation.value);
}
return FadeTransition(
opacity: slideAnimation,
child: Transform(
transform: Matrix4.translationValues(xTranslation, yTranslation, 0.0),
child: widget.child,
),
);
},
);
}