selfprivacy.org.app/lib/utils/route_transitions/slide_bottom.dart

50 lines
1.3 KiB
Dart
Raw Normal View History

2020-11-29 22:07:46 +02:00
import 'package:flutter/material.dart';
2022-06-05 22:36:32 +03:00
Function pageBuilder = (final Widget widget) => (
final BuildContext context,
final Animation<double> animation,
final Animation<double> secondaryAnimation,
2020-11-29 22:07:46 +02:00
) =>
widget;
Function transitionsBuilder = (
2022-06-05 22:36:32 +03:00
final BuildContext context,
final Animation<double> animation,
final Animation<double> secondaryAnimation,
final Widget child,
2022-06-10 00:13:06 +03:00
) =>
SlideTransition(
position: Tween<Offset>(
begin: const Offset(0, 1),
end: Offset.zero,
).animate(animation),
child: Container(
decoration: animation.isCompleted
? null
: const BoxDecoration(
border: Border(
bottom: BorderSide(
color: Colors.black,
),
2020-11-29 22:07:46 +02:00
),
),
2022-06-10 00:13:06 +03:00
child: child,
),
);
2020-11-29 22:07:46 +02:00
class SlideBottomRoute extends PageRouteBuilder {
SlideBottomRoute(this.widget)
: super(
2022-05-24 21:55:39 +03:00
transitionDuration: const Duration(milliseconds: 150),
2020-11-29 22:07:46 +02:00
pageBuilder: pageBuilder(widget),
2021-03-26 15:38:39 +02:00
transitionsBuilder: transitionsBuilder as Widget Function(
2022-06-10 00:13:06 +03:00
BuildContext,
Animation<double>,
Animation<double>,
Widget,
),
2020-11-29 22:07:46 +02:00
);
final Widget widget;
}