dart - 使用不包含 MediaQuery 的上下文调用的 Flutter 错误 : Media

我一直试图在 Flutter 中获取整个上下文 View 的大小。但每次我尝试我都会收到上述错误。 这是我的代码:

import 'package:flutter/material.dart';

void main => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    final size = MediaQuery.of(context).size;
    return new MaterialApp(
      home: new Scaffold(),
    );
  }
}

注意:我也尝试使用 StatefulWidget。 请帮我找出我做错了什么。

最佳答案

您需要一个 MaterialApp 或一个 WidgetsApp 围绕您的小部件。他们提供 MediaQuery。当您调用 .of(context) 时,flutter 将始终查找小部件树以找到小部件。

你通常在 main.dart 中有这个:

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Title',
      theme: kThemeData,
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final size = MediaQuery.of(context).size;

    return Container(
      child: ...,
    );
  }
}

关于dart - 使用不包含 MediaQuery 的上下文调用的 Flutter 错误 : MediaQuery. of(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50214338/

相关文章:

dart - Flutter - 从 Assets 中读取文本文件

flutter - 如何确定屏幕高度和宽度

flutter - 弹出时强制 Flutter 导航器重新加载状态

android-studio - 带有 Flutter 更新的 Android Studio 导致了

Flutter - 如何将用户数据传递给所有 View

Flutter Layout Row/Column - 共享宽度,扩展高度

flutter - 创建一个带有圆形边框的按钮

dart - 如何将 JSON Assets 加载到 Flutter 应用程序中?

flutter - 从 Flutter 中的 Scaffold AppBar 中删除阴影?

flutter - 从另一个有状态小部件调用一个有状态小部件中的方法 - Flutter