显示“材质”对话框,未找到“材质本地化”

时间:2020-08-09 12:08:06

标签: flutter dialog

我试图在我的应用程序上执行Dialog函数。 但是“未找到MaterialLocalizations”。错误出来了,它没有打开弹出窗口。 即使我尝试查找其他参考,我也不知道如何解决此问题。 请让我知道如何解决此问题。

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();
              },
            )
          ],
        ));
  }
}

1 个答案:

答案 0 :(得分:1)

您需要将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();
                  },
                )
              ],
            ));
  }
}