build method

  1. @override
Widget build({
  1. required Animation<double> animation,
  2. required Widget child,
  3. Map<String, Object?> params = const {},
})
override

Builds the animated widget for the forward direction.

animation0.0 → 1.0 where 0.0 = invisible/start, 1.0 = visible/end. child — the widget being animated. params — optional configuration map (typed by each plugin).

Concrete subclasses must override this method.

Implementation

@override
Widget build({
  required Animation<double> animation,
  required Widget child,
  Map<String, Object?> params = const {},
}) {
  final dir =
      (params['direction'] as SlideDirection?) ?? SlideDirection.up;
  final distance = (params['distance'] as double?) ?? 1.0;

  final begin = switch (dir) {
    SlideDirection.up => Offset(0.0, distance),
    SlideDirection.down => Offset(0.0, -distance),
    SlideDirection.left => Offset(distance, 0.0),
    SlideDirection.right => Offset(-distance, 0.0),
  };

  final tween = Tween<Offset>(begin: begin, end: Offset.zero);
  return SlideTransition(position: tween.animate(animation), child: child);
}