Flutter-如何创建CupertinoAlertDialog

时间:2018-10-11 16:00:09

标签: ios flutter alertdialog

我正在尝试使用以下代码在Flutter项目上创建iOS CupertinoAlertDialog

   showDialog(
      context: context,
      builder: (BuildContext context) => new CupertinoAlertDialog(
        title: new Text("Alert"),
        content: new Text("My alert message"),
        actions: [
          CupertinoDialogAction(isDefaultAction: true, child: new Text("Close"))
        ]));

但是,在调用此对话框时,我收到以下错误消息:

NoSuchMethodError: The getter 'alertDialogLabel' was called on null

Android AlertDialog正常运行。

此代码有什么问题?

2 个答案:

答案 0 :(得分:0)

您创建一个方法,然后从此处显示对话框

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

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void displayDialog() {
    showDialog(
      context: context,
      builder: (BuildContext context) => new CupertinoAlertDialog(
            title: new Text("Alert"),
            content: new Text("My alert message"),
            actions: [
              CupertinoDialogAction(
                  isDefaultAction: true, child: new Text("Close"))
            ],
          ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Center(child: new Text("Welcome")),
      floatingActionButton: new FloatingActionButton(
        onPressed: displayDialog,
        child: new Icon(Icons.add),
      ),
    );
  }
}

答案 1 :(得分:0)

我在我的项目中使用了本地化,这是造成这个 alertDialogLabel 问题的主要原因。

这是对我有用的解决方案'alertDialogLabel' was called on null