我是Flutter的初学者,我正在尝试使用带有标题显示文本“ Hi there”的AppBar制作一个简单的应用程序
通过Android Studio执行代码时,我总是会收到错误消息
MediaQuery.of() called with a context that does not contain a MediaQuery.
即使我不调用MediaQuery.of(),为什么也会调用此错误?我该如何解决这个问题
我首先认为这是Flutter或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,但我收到了错误消息。
答案 0 :(得分:4)
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")
)
),
);
}
}