translateTransitionBuilder function

AnimatedSwitcherTransitionBuilder translateTransitionBuilder({
  1. double magnitude = 1.0,
  2. TextDirection? horizDirection,
  3. VerticalDirection? vertDirection = VerticalDirection.up,
})

Builds a transition that slides and fades in / out the child.

Implementation

AnimatedSwitcherTransitionBuilder translateTransitionBuilder({
  double magnitude = 1.0,
  TextDirection? horizDirection,
  VerticalDirection? vertDirection = VerticalDirection.up,
}) {
  final isLtr = horizDirection == TextDirection.ltr;
  final isRtl = horizDirection == TextDirection.rtl;
  final isDtu = vertDirection == VerticalDirection.up;
  final isUtd = vertDirection == VerticalDirection.down;

  final enterBegin = Offset(
    isLtr
        ? -magnitude
        : isRtl
            ? magnitude
            : 0.0,
    isDtu
        ? magnitude
        : isUtd
            ? -magnitude
            : 0.0,
  );
  final exitEnd = Offset(
    isLtr
        ? magnitude
        : isRtl
            ? -magnitude
            : 0.0,
    isDtu
        ? -magnitude
        : isUtd
            ? magnitude
            : 0.0,
  );

  return (child, animation) {
    return SlideTransition(
      position: ReversibleAnimation(
        animation,
        forward: Tween<Offset>(begin: enterBegin, end: Offset.zero),
        reverse: Tween<Offset>(begin: Offset.zero, end: exitEnd),
      ),
      child: FadeTransition(
        opacity: animation,
        child: child,
      ),
    );
  };
}