Mounir-Bouaiche

Fix getting inherited MediaQuery when using DevicePreview

//
// Generated file. Do not edit.
//
// ignore_for_file: directives_ordering
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: depend_on_referenced_packages
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
// ignore: public_member_api_docs
void registerPlugins(Registrar registrar) {
SharedPreferencesPlugin.registerWith(registrar);
registrar.registerMessageHandler();
}
... ...
import 'package:device_preview/device_preview.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'src/first_method.dart' as firstMethod;
import 'src/second_method.dart' as secondMethod;
void main() {
const method = int.fromEnvironment('method', defaultValue: 1);
runApp(method == 1 ? firstMethod.MyApp() : secondMethod.MyApp());
runApp(
DevicePreview(
enabled: kDebugMode && kIsWeb,
builder: (context) {
return method == 1 ? firstMethod.MyApp() : secondMethod.MyApp();
},
),
);
}
... ...
... ... @@ -9,9 +9,11 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
// In first method you only need to wrap [MaterialApp] with [ScreenUtilInit] and that's it
return ScreenUtilInit(
useInheritedMediaQuery: true,
builder: (_, child) {
return MaterialApp(
debugShowCheckedModeBanner: false,
useInheritedMediaQuery: true,
title: 'First Method',
// You can use the library anywhere in the app even in theme
theme: ThemeData(
... ...
... ... @@ -20,7 +20,12 @@ dependencies:
flutter_screenutil:
path: ../
device_preview: ^1.1.0
dev_dependencies:
flutter_test:
sdk: flutter
test: ^1.15.7
flutter:
uses-material-design: true
\ No newline at end of file
... ...
... ... @@ -66,9 +66,7 @@ class _ScreenUtilInitState extends State<ScreenUtilInit>
MediaQueryData get newData {
if (widget.useInheritedMediaQuery) {
final el = context.getElementForInheritedWidgetOfExactType<MediaQuery>();
final mq = el?.widget as MediaQuery?;
final data = mq?.data;
final data = MediaQuery.maybeOf(context);
if (data != null) {
wrappedInMediaQuery = true;
... ...