无法在 Flutter Web 中使用 MediaQuery

Posted

技术标签:

【中文标题】无法在 Flutter Web 中使用 MediaQuery【英文标题】:Unable to use MediaQuery in Flutter Web 【发布时间】:2021-04-02 22:29:23 【问题描述】:

我正在尝试在 Flutter Web 中使用 MediaQuery,如下所示:

class Login extends StatefulWidget 
 @override
 _LoginState createState() => _LoginState();


class _LoginState extends State<Login> 
 Size size;
 MediaQueryData mediaQuerydata;
 
   @override
    Widget build(BuildContext context) 
     mediaQuerydata = MediaQuery.of(context);
     size = MediaQuery.of(context).size;

     return Container();
 

════════小部件库捕获的异常═════════════════════════════════════ ═ 在构建 LoginWithMobile$(dirty, dependencies: [MediaQuery], state: _LoginWithMobileState#2a7a8) 时引发了以下 UnsupportedError: 不支持的操作:Platform._operatingSystem

相关的导致错误的小部件是 LoginWithMobile$ lib/main.dart:84 抛出异常时,这是堆栈 dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49 throw dart-sdk/lib/_internal/js_dev_runtime/patch/io_patch.dart 244:5 _operatingSystem dart-sdk/lib/io/platform_impl.dart 58:40 获取操作系统 dart-sdk/lib/io/platform.dart 65:45 获取 _operatingSystem dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 802:8 获取

颤振医生输出:

   Doctor summary (to see all details, run flutter doctor -v):
   [✓] Flutter (Channel beta, 1.25.0-8.1.pre, on macOS 11.1 20C69                           
   darwin-x64, locale en-IN)
   [✓] android toolchain - develop for Android devices (Android SDK                             
   version 30.0.2)
   [✓] Xcode - develop for ios and macOS (Xcode 12.2)
   [✓] Chrome - develop for the web
   [✓] Android Studio (version 4.0)
   [✓] VS Code (version 1.52.1)
   [✓] Connected device (2 available)
       ! Error: iPhone is not connected. Xcode will continue when        
                iPhone is connected. (code -13)

   • No issues found!

【问题讨论】:

【参考方案1】:

我不确定 MediaQuery 是否适用于 Flutter Web。您是否尝试过改用 LayoutBuilder?

【讨论】:

以上是关于无法在 Flutter Web 中使用 MediaQuery的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Flutter Web 中使用 MediaQuery

无法在 Flutter 中运行 web api 文件

是否有可能 - 在 Flutter Web 应用程序中插入 google AdSense?

Flutter web 无法使用移动项目中的包

在 Flutter Widget 测试中,如何将 media.orientation 设置为纵向?

URL 启动器在某些 Android 设备中无法与 Flutter Web 一起使用