热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter:找不到MediaQuery小部件祖先

importpackage:flutter/material.dart;voidmain(){runApp(Calculator());}

import 'package:flutter/material.dart';
void main() {
runApp(Calculator());
}
class Calculator extends StatelessWidget {
final numpad_background_color = Color(0x212121);
final background_color = Colors.black;
final equal_button_background_color = Color(0xffbe00);
final textColor = Colors.white;
final operatorTextColor = Color(0xf3ba0e);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: appbar(context),
body: Stack(
children: [Container(height: MediaQuery.of(context).size.height * 0.37), numpad(context)],
)));
}
Widget appbar(BuildContext context) {
return AppBar(title: Text("Rechner", style: TextStyle(color: textColor, fontSize: 15)), backgroundColor: background_color, leading: Icon(Icons.history));
}
Widget numpad(BuildContext context) {
return Container(decoration: BoxDecoration(borderRadius: BorderRadius.circular(5), color: numpad_background_color), child:
Column(children: [
],),);
}
}

错误:从传递给 MediaQuery.of() 的上下文开始,找不到任何 MediaQuery 祖先。这可能是因为您没有添加 WidgetsApp、CupertinoApp 或 MaterialApp 小部件(这些小部件引入了 MediaQuery),或者如果您使用的上下文来自这些小部件上方的小部件,则可能会发生这种情况。

我不明白这个错误,我创建了一个 MaterialApp Widget 并从那里调用 MediaQuery,为什么会出现这个错误?

回答


尝试创建另一个像这样的小部件

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Calculator(),
);
}
}

然后你的主要方法看起来像这样

void main() {
runApp(MyApp());
}






推荐阅读
author-avatar
ccsv0601604
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有