最近,我在Flutter中遇到了这个错误:
使用不包含MediaQuery的上下文调用了MediaQuery.of((。
这是我的代码:
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main(){
runApp(Home());
}
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return MaterialApp(
title: 'Refresh my mind',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.red,
),
home:Scaffold(
appBar: AppBar(
title: Text("Hello"),
leading: Icon(
Icons.ac_unit
),
actions: [Icon(Icons.account_balance),
Icon(Icons.airplanemode_active),
Icon(Icons.autorenew),],
elevation: 12,
),
backgroundColor: Colors.teal,
body: Container(
color: Colors.black12,
margin: EdgeInsets.all(20),
child: Center(
child: Card(
elevation: 5.0,
color: Colors.grey,
child: Container(
width: size.width/1.5,
height: 200,
),
),
),
),
),
);
}
}
我在互联网上搜索,发现我必须使用MaterialApp小部件或WidgetApp,但我在代码中使用了MaterialApp。
所以我想知道,应该是什么错误?
谢谢
这可能是因为MaterialApp尚未初始化。尝试将您的主页小部件移动到一个单独的文件(例如home_screen.dart(,并将其传递给MaterialApp,如:
MaterialApp(home:HomeScreen())
在HomeScreen中使用MediaQuery