Reputation: 232
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: [
],),);
}
}
Error: No MediaQuery ancestor could be found starting from the context that was passed to MediaQuery.of(). This can happen because you have not added a WidgetsApp, CupertinoApp, or MaterialApp widget (those widgets introduce a MediaQuery), or it can happen if the context you use comes from a widget above those widgets.
I don't understand the error, I created a MaterialApp Widget and call MediaQuery from there, why does this error appear?
Upvotes: 13
Views: 16633
Reputation: 41
Just do it as below This worked for me:
void main() {
runApp(MaterialApp(),);
}
Upvotes: 0
Reputation: 119
Wrap your classname with MaterialApp and your issue is solved. Ex. here my classname is sahim and that's how i solved this issue.
void main() {
runApp(
MaterialApp(
home: sahim(),
),
);
}
Upvotes: 4
Reputation: 2623
Just do it as below. I have solved it in this way
void main() {
runApp(MaterialApp(home: Calculator()));
}
Upvotes: 3
Reputation: 4753
Try creating another widget like this
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Calculator(),
);
}
}
Then your main method will looks like this
void main() {
runApp(MyApp());
}
Upvotes: 17