почему ошибка mediaquery.of () продолжает появляться? - PullRequest
0 голосов
/ 03 мая 2020

Click here to see the image

Я просто пытаюсь создать простой виджет, но он продолжает показывать эту ошибку, что мне делать?

Ответы [ 3 ]

0 голосов
/ 03 мая 2020

Похоже, что ваш root виджет не является MaterialApp, другие используемые вами виджеты должны быть потомками некоторых предков медиа-запросов. Например. MaterialApp.

Вместо этого:

Widget build(BuildContext context) {
    return Container(
      child: SomeWidget(),
    );
  }

Сделать это:

Widget build(BuildContext context) {
    return MaterialApp(
      home: SomeWidget(),
    );
  }
0 голосов
/ 03 мая 2020

Вы получаете эту ошибку, потому что на вершине дерева должен использоваться виджет material.

здесь вы можете использовать виджет Scaffold или MaterialApp.

и Если вы пытаетесь закрасить фон экрана каким-либо цветом, просто используйте параметр backgroundColor в вашем виджете Scaffold.

Попробуйте код, показанный ниже

Widget build(BuildContext context) {
  return Scaffold(
    backgroundColor: Colors.purpleAccent,
    appBar: AppBar(
       backgroundColor: Colors.redAccent,
       title: Text("unit converter",textScaleFactor:4.0)
    ),
    body: yourWidget()
  );
}
0 голосов
/ 03 мая 2020

Вы получаете ошибку, потому что ваше приложение не возвращает приложение Material. Проверьте этот код ниже, он работает отлично.

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          backgroundColor: Colors.redAccent,
          title: Text('unit converter', textScaleFactor: 1.0,),
        ),
        body: Container(
          color: Colors.purpleAccent,
        ),
      ),
    );
  }
}

Вывод кода: Output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...