我可以在函数中将类作为参数传递吗?

古普拉卡什古普塔

在这里,我有一个实用程序类,其中有用于显示DialogBox的函数,因此我试图制作一个AlertDailog Box,该控件可在整个项目中使用。因此,我将标题,描述作为参数传递,并且还希望传递类名称,以便在按下警报对话框中的按钮时可以导航到该屏幕

class DialogBox {
  static DialogBox dialogBox = null;

  static DialogBox getInstance() {
    if (dialogBox == null) {
      dialogBox = DialogBox();
    }
    return dialogBox;
  }

  showAlertDialog(BuildContext context, String alertTitle, String alertMessage) {
    showDialog(
        context: context,
        barrierDismissible: false,
        builder: (context) {
          return AlertDialog(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(15.0),
            ),
            title: Center(child: Text(alertTitle)),
            content: Column(
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[
                Text(
                  alertMessage,
                  textAlign: TextAlign.center,
                ),
                Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    crossAxisAlignment: CrossAxisAlignment.end,
                    children: <Widget>[
                      FlatButton(
                        child: Center(
                            child: Text(
                          'Ok',
                          textAlign: TextAlign.center,
                        )),
                        onPressed: () {
                          Navigator.of(context).pop();
//                          Navigator.of(context).push(MaterialPageRoute(
//                              builder: (BuildContext context) {
//                            return Home();//Intead of  giving Home() anything can be passed here  
//                          }));
                        },
                      ),
                    ])
              ],
            ),
          );
        });
  }
}

现在我一直保持关闭对话框的状态,但是我想导航到其他课程

基里尔·布博奇金

传递类名是一个坏主意–类可能需要构造函数的参数,它的类型安全,并且需要反射,而Flutter不支持。

您可以改为传递一个函数,该函数将创建所需类型的小部件:

showAlertDialog(
    BuildContext context, 
    String alertTitle, 
    String alertMessage,
    Widget Function() createPage,
) {

// ...
  onPressed: () {
    Navigator.of(context).pop();
    Navigator.of(context).push(MaterialPageRoute(
        builder: (BuildContext context) {
          return createPage();
        }));
  },

// ...
}

并这样称呼它:

showAlertDialog(context, title, message, () => Home())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有人可以帮助我在python中将函数作为参数传递吗?

来自分类Dev

我可以在Java中将算法作为参数传递吗?

来自分类Dev

我可以传递“类型”作为函数参数吗?

来自分类Dev

我们可以将函数作为参数传递吗

来自分类Dev

在函数中将常量类作为参数传递

来自分类Dev

函数可以作为参数传递吗?

来自分类Dev

我可以将模板类的类文字作为注释的参数传递吗?

来自分类Dev

我们可以在RedirectToAction中将模型作为参数传递吗?

来自分类Dev

我们可以在对象调用中将对象作为参数传递吗?

来自分类Dev

如何避免在类中将我的连接变量作为函数参数传递?

来自分类Dev

如果基类作为参数调用,我可以使用派生类函数吗?

来自分类Dev

是否可以在Java中将类名作为参数传递?

来自分类Dev

我可以将基类类型作为通用参数传递给接口吗

来自分类Dev

在Numba优化的Python中将类对象作为函数参数传递

来自分类Dev

在类中将函数作为参数传递时出错

来自分类Dev

在构造函数错误中将类指针作为参数传递

来自分类Dev

在自己的构造函数中将“ this”作为参数传递是不好的做法吗?

来自分类Dev

是否可以在JavaScript函数中将变量作为参数传递?

来自分类Dev

是否可以在Kotlin中将类属性作为函数参数传递?

来自分类Dev

我可以将类型作为参数传递给这个函数吗?

来自分类Dev

我可以传递一个对象作为 onClick 函数的参数吗

来自分类Dev

我可以将 props 作为函数参数传递,或者这是一种不好的做法吗?

来自分类Dev

我可以将智能指针作为函数参数传递以生成顶点数组吗

来自分类Dev

我可以将搜索框值作为参数传递给函数吗?

来自分类Dev

C ++我可以将成员函数的选择作为参数传递吗?

来自分类Dev

我可以动态创建新地图并作为函数参数传递吗?

来自分类Dev

我可以在 pouchdb upsert 中将变量作为键传递吗

来自分类Dev

我可以使用类型作为值(或从构造函数参数正确推断通用类类型)吗?

来自分类Dev

Haskell内联函数可以作为参数传递吗?

Related 相关文章

  1. 1

    有人可以帮助我在python中将函数作为参数传递吗?

  2. 2

    我可以在Java中将算法作为参数传递吗?

  3. 3

    我可以传递“类型”作为函数参数吗?

  4. 4

    我们可以将函数作为参数传递吗

  5. 5

    在函数中将常量类作为参数传递

  6. 6

    函数可以作为参数传递吗?

  7. 7

    我可以将模板类的类文字作为注释的参数传递吗?

  8. 8

    我们可以在RedirectToAction中将模型作为参数传递吗?

  9. 9

    我们可以在对象调用中将对象作为参数传递吗?

  10. 10

    如何避免在类中将我的连接变量作为函数参数传递?

  11. 11

    如果基类作为参数调用,我可以使用派生类函数吗?

  12. 12

    是否可以在Java中将类名作为参数传递?

  13. 13

    我可以将基类类型作为通用参数传递给接口吗

  14. 14

    在Numba优化的Python中将类对象作为函数参数传递

  15. 15

    在类中将函数作为参数传递时出错

  16. 16

    在构造函数错误中将类指针作为参数传递

  17. 17

    在自己的构造函数中将“ this”作为参数传递是不好的做法吗?

  18. 18

    是否可以在JavaScript函数中将变量作为参数传递?

  19. 19

    是否可以在Kotlin中将类属性作为函数参数传递?

  20. 20

    我可以将类型作为参数传递给这个函数吗?

  21. 21

    我可以传递一个对象作为 onClick 函数的参数吗

  22. 22

    我可以将 props 作为函数参数传递,或者这是一种不好的做法吗?

  23. 23

    我可以将智能指针作为函数参数传递以生成顶点数组吗

  24. 24

    我可以将搜索框值作为参数传递给函数吗?

  25. 25

    C ++我可以将成员函数的选择作为参数传递吗?

  26. 26

    我可以动态创建新地图并作为函数参数传递吗?

  27. 27

    我可以在 pouchdb upsert 中将变量作为键传递吗

  28. 28

    我可以使用类型作为值(或从构造函数参数正确推断通用类类型)吗?

  29. 29

    Haskell内联函数可以作为参数传递吗?

热门标签

归档