dart - 使用不包含 MediaQuery 的上下文调用的 Flutter 错误 : MediaQuery. of()

标签 dart flutter

我一直试图在 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/

相关文章:

flutter - 错误 : A non-null value must be returned since the return type 'Widget' doesn't allow null

flutter - 在不同屏幕的自定义导航栏中更改所选项目的颜色

flutter - 如何在 Flutter 中保存用户登录详细信息?

unit-testing - 测试框架意外退出 - Mac 上的 Dart 项目

flutter - 从子/孙小部件刷新对话框和父级

flutter - 状态未使用 Riverpod 的 StateNotifier 更新 map

flutter - 如何使用按钮点击更新页面 View 中的文本数据?

dart - 使用 Flutter Slider 未正确触发 onChangeEnd

flutter - AnimationList Flutter中的RangeError?

android - VS 代码 : Failed to install the following Android SDK packages as some licences have not been accepted