ente/lib/utils/navigation_util.dart

57 lines
1.2 KiB
Dart
Raw Normal View History

import 'dart:io';
import 'package:flutter/material.dart';
Future<T> routeToPage<T extends Object>(
BuildContext context,
Widget page, {
bool forceCustomPageRoute = false,
}) {
if (Platform.isAndroid || forceCustomPageRoute) {
return Navigator.of(context).push(
_buildPageRoute(page),
);
} else {
return Navigator.of(context).push(
MaterialPageRoute(
builder: (BuildContext context) {
return page;
},
),
);
}
2021-06-09 13:37:20 +00:00
}
void replacePage(BuildContext context, Widget page) {
Navigator.of(context).pushReplacement(
_buildPageRoute(page),
);
}
PageRouteBuilder<T> _buildPageRoute<T extends Object>(Widget page) {
2021-06-09 13:37:20 +00:00
return PageRouteBuilder(
2022-06-11 08:23:52 +00:00
pageBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) {
2021-06-09 13:37:20 +00:00
return page;
},
2022-06-11 08:23:52 +00:00
transitionsBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
2021-06-09 13:37:20 +00:00
return Align(
child: FadeTransition(
opacity: animation,
child: child,
),
);
},
2022-07-04 06:02:17 +00:00
transitionDuration: const Duration(milliseconds: 200),
2021-06-09 13:37:20 +00:00
opaque: false,
);
}