mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
42 lines
1 KiB
Dart
42 lines
1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class MediaQueryScaler extends StatelessWidget {
|
|
final Widget child;
|
|
final bool enable;
|
|
final double scale;
|
|
|
|
const MediaQueryScaler({
|
|
required this.child,
|
|
required this.enable,
|
|
this.scale = 1.35,
|
|
super.key,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
if (!enable) return child;
|
|
final mediaQuery = MediaQuery.of(context);
|
|
final screenSize = MediaQuery.sizeOf(context) * scale;
|
|
|
|
final scaledMedia = mediaQuery.copyWith(
|
|
navigationMode: NavigationMode.directional,
|
|
size: screenSize,
|
|
padding: mediaQuery.padding * scale,
|
|
viewInsets: mediaQuery.viewInsets * scale,
|
|
viewPadding: mediaQuery.viewPadding * scale,
|
|
devicePixelRatio: mediaQuery.devicePixelRatio * scale,
|
|
);
|
|
|
|
return FittedBox(
|
|
alignment: Alignment.center,
|
|
child: SizedBox(
|
|
width: screenSize.width,
|
|
height: screenSize.height,
|
|
child: MediaQuery(
|
|
data: scaledMedia,
|
|
child: child,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|