显示 Material 对话框,未找到 Material 本地化

Showing Material Dialog, No MaterialLocalizations found

我尝试在我的应用程序上启用对话框功能。 但是“未找到 MaterialLocalizations”。出现错误,它没有打开弹出窗口 window。 即使我试图找到其他参考资料,我也不知道如何解决这个问题。 请让我知道如何解决此问题。

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

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

class OverApp extends StatefulWidget {
  @override
  _OverAppState createState() => _OverAppState();
}

class _OverAppState extends State<OverApp> {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('List'),
        ),
        body: RaisedButton(
          child: Text('Show Material Dialog'),
          onPressed: _showMaterialDialog,
        ),
      ),
    );
  }

  _showMaterialDialog() {
    showDialog(
        context: context,
        builder: (_) => new AlertDialog(
          title: new Text("Material Dialog"),
          content: new Text("Hey!"),
          actions: <Widget>[
            FlatButton(
              child: Text('Close me!'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            )
          ],
        ));
  }
}

您需要将 MaterialApp 放入 runApp 中(或者制作另一个小部件并将 Scaffold 放入其构建中并将此新小部件用作 MaterialApp).

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: OverApp()));
}

class OverApp extends StatefulWidget {
  @override
  _OverAppState createState() => _OverAppState();
}

class _OverAppState extends State<OverApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('List'),
      ),
      body: RaisedButton(
        child: Text('Show Material Dialog'),
        onPressed: _showMaterialDialog,
      ),
    );
  }

  _showMaterialDialog() {
    showDialog(
        context: context,
        builder: (_) => new AlertDialog(
              title: new Text("Material Dialog"),
              content: new Text("Hey!"),
              actions: <Widget>[
                FlatButton(
                  child: Text('Close me!'),
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                )
              ],
            ));
  }
}