This commit is contained in:
@ -1,50 +1,50 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:f0ckapp/controller/media_controller.dart';
|
||||
import 'package:f0ckapp/controller/mediacontroller.dart';
|
||||
|
||||
enum PageTransition { opacity, scale, slide, rotate, flip }
|
||||
|
||||
Widget buildAnimatedTransition({
|
||||
required BuildContext context,
|
||||
required Widget child,
|
||||
required PageController pageController,
|
||||
required int index,
|
||||
required MediaController controller,
|
||||
}) {
|
||||
final double value = pageController.position.haveDimensions
|
||||
? pageController.page! - index
|
||||
: 0;
|
||||
required BuildContext context,
|
||||
required Widget child,
|
||||
required PageController pageController,
|
||||
required int index,
|
||||
required MediaController controller,
|
||||
}) {
|
||||
final double value = pageController.position.haveDimensions
|
||||
? pageController.page! - index
|
||||
: 0;
|
||||
|
||||
switch (controller.transitionType.value) {
|
||||
case PageTransition.opacity:
|
||||
return Opacity(
|
||||
opacity: Curves.easeOut.transform(1 - value.abs().clamp(0.0, 1.0)),
|
||||
child: Transform(transform: Matrix4.identity(), child: child),
|
||||
);
|
||||
case PageTransition.scale:
|
||||
return Transform.scale(
|
||||
scale:
|
||||
0.8 +
|
||||
Curves.easeOut.transform(1 - value.abs().clamp(0.0, 1.0)) * 0.2,
|
||||
child: child,
|
||||
);
|
||||
case PageTransition.slide:
|
||||
return Transform.translate(
|
||||
offset: Offset(300 * value.abs(), 0),
|
||||
child: child,
|
||||
);
|
||||
case PageTransition.rotate:
|
||||
return Opacity(
|
||||
opacity: (1 - value.abs()).clamp(0.0, 1.0),
|
||||
child: Transform.rotate(angle: value.abs() * 0.5, child: child),
|
||||
);
|
||||
case PageTransition.flip:
|
||||
return Transform(
|
||||
transform: Matrix4.identity()
|
||||
..setEntry(3, 2, 0.001)
|
||||
..rotateY(value.abs()),
|
||||
alignment: Alignment.center,
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
switch (controller.transitionType.value) {
|
||||
case PageTransition.opacity:
|
||||
return Opacity(
|
||||
opacity: Curves.easeOut.transform(1 - value.abs().clamp(0.0, 1.0)),
|
||||
child: Transform(transform: Matrix4.identity(), child: child),
|
||||
);
|
||||
case PageTransition.scale:
|
||||
return Transform.scale(
|
||||
scale:
|
||||
0.8 +
|
||||
Curves.easeOut.transform(1 - value.abs().clamp(0.0, 1.0)) * 0.2,
|
||||
child: child,
|
||||
);
|
||||
case PageTransition.slide:
|
||||
return Transform.translate(
|
||||
offset: Offset(300 * value.abs(), 0),
|
||||
child: child,
|
||||
);
|
||||
case PageTransition.rotate:
|
||||
return Opacity(
|
||||
opacity: (1 - value.abs()).clamp(0.0, 1.0),
|
||||
child: Transform.rotate(angle: value.abs() * 0.5, child: child),
|
||||
);
|
||||
case PageTransition.flip:
|
||||
return Transform(
|
||||
transform: Matrix4.identity()
|
||||
..setEntry(3, 2, 0.001)
|
||||
..rotateY(value.abs()),
|
||||
alignment: Alignment.center,
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user