enterFullScreen method
Implementation
@override
void enterFullScreen(BuildContext context) async {
_isFullScreen = true;
await SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
await SystemChrome.setEnabledSystemUIMode(
SystemUiMode.immersiveSticky,
overlays: [],
);
WidgetsBinding.instance.addPostFrameCallback((_) async {
await Navigator.push(
context,
PageRouteBuilder<dynamic>(
pageBuilder: (BuildContext context, _, __) => FullScreenView(
controller: this,
configuration: configuration,
),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return FadeTransition(
opacity: animation,
child: ScaleTransition(
scale: Tween<double>(begin: 0.95, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Curves.easeInOut,
),
),
child: child,
),
);
},
transitionDuration: const Duration(milliseconds: 300),
reverseTransitionDuration: const Duration(milliseconds: 300),
),
);
_isFullScreen = false;
});
}