flutter - 使用不显示 MediaQuery 错误的上下文调用 MediaQuery.of(),即使应用程序中未使用 MediaQuery
问题描述
我是 Flutter 的初学者,我正在尝试制作一个带有 AppBar 的简单应用程序,其标题显示文本“Hi there”
通过 Android Studio 执行代码时,我总是收到错误消息
MediaQuery.of() called with a context that does not contain a MediaQuery.
为什么即使我不调用 MediaQuery.of() 也会调用此错误?我该如何解决这个问题
我首先认为这是颤振或 Android Studio 的问题。我用了颤振医生,一切都很好。确切的代码如下所示:
[√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17134.706], locale
en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.4)
[√] VS Code (version 1.33.1)
[√] Connected device (1 available)
• No issues found!
我意识到 Flutter 框架本身可能不是问题。
然后我决定重新启动 Android Studio,因为它本身可以解决问题。不幸的是,令人讨厌的错误仍然显示
这是我的代码。
import 'package:flutter/material.dart';
void main() => runApp(myApp());
class myApp extends StatelessWidget{
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: Text("Hi there")
)
);
}
}
我希望看到一个标题为“Hi There”的 AppBar,但我收到了一个错误。
解决方案
MediaQuery
Scaffold
从源代码中可以看出,内部组件使用它来布局其子级。因此,它需要被包装在一个小部件中,该小部件将提供一个MediaQuery
,就像一个MaterialApp
小部件,它继承自WidgetsApp
:
void main() => runApp(myApp());
class myApp extends StatelessWidget{
Widget build(BuildContext context){
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Hi there")
)
),
);
}
}
推荐阅读
- javascript - 如何在删除最后一个值之前克隆 jQuery 输入?
- python - 使用另一个列表中的元素对列表进行分组
- r - 在列表上使用 lapply 时如何访问向量的元素
- python - 如何使用 test_client 登录并使用该登录的 app_context 发出 PUT 请求?
- java - 使用 DaoAuthenticationProvider 注册后自动登录
- javascript - jQuery Datatable 错误加载大数据 4Mb
- react-native - 登录调用成功后加载主页
- mongoose - 猫鼬 findByIdAndUpdate 我完全不明白
- python - 如何使用 pandas/python 从文本文件中删除美元金额中的逗号
- c - 当等待进程(在信号量队列中)接收到来自另一个进程的信号时会发生什么?