您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

找不到MaterialLocalizations- MyApp窗口小部件要求由Localizations小部件祖先提供MaterialLocalizations

找不到MaterialLocalizations- MyApp窗口小部件要求由Localizations小部件祖先提供MaterialLocalizations

这是因为要传递给该showDialog方法的上下文是一个context尚未MaterialLocalizations在小部件树中包含小部件的,该MaterialLocalizations小部件被该小部件隐式添加MaterialApp

解决此问题,请尝试以下操作:

import 'package:Flutter/material.dart';

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

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

class TestPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Test")),
      body: Container(
        child: Center(
          child: RaisedButton(
            color: Colors.redAccent,
            textColor: Colors.white,
            onPressed: () {
              testAlert(context);
            },
            child: Text("PressMe"),
          ),
        ),
      ),
    );
  }

  void testAlert(BuildContext context) {
    var alert = AlertDialog(
      title: Text("Test"),
      content: Text("Done..!"),
    );

    showDialog(
        context: context,
        builder: (BuildContext context) {
          return alert;
        });
  }
}
其他 2022/1/1 18:17:45 有381人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶