openBaseExpansion<T> function
Future<T?>
openBaseExpansion<T>(
- BuildContext context,
- BaseExpansion baseExpansion, {
- Duration? transitionDuration,
- bool enableBarrierBlur = true,
Enhanced BaseExpansion helper functions with Material 3 and Liquid Glass support Open expansion panel with modern page route and enhanced transitions
Implementation
/// Open expansion panel with modern page route and enhanced transitions
Future<T?> openBaseExpansion<T>(
BuildContext context,
BaseExpansion baseExpansion, {
Duration? transitionDuration,
bool enableBarrierBlur = true,
}) {
final duration = transitionDuration ?? const Duration(milliseconds: 150);
return Navigator.of(context).push<T>(
PageRouteBuilder<T>(
opaque: false,
transitionDuration: duration,
reverseTransitionDuration: duration,
barrierDismissible: baseExpansion.barrierDismissible,
barrierColor: enableBarrierBlur
? Colors.black.withOpacity(0.1)
: Colors.transparent,
pageBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) {
return FadeTransition(
opacity: animation,
child: baseExpansion,
);
},
transitionsBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
// Enhanced transition with scale and fade for modern feel
return FadeTransition(
opacity: animation,
child: ScaleTransition(
scale: Tween<double>(begin: 0.95, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Curves.easeOutCubic,
),
),
child: child,
),
);
},
),
);
}