函数中的回调函数参数的使用

 

函数 A.X在函数B 中完成回调

A->B-A.X()

变量定义:

VoidCallback  callDo

 

 

调用时的参数可以有两种方式传入:

1、X

2,()=>X()

 

 

static showBottomMessage(BuildContext context, VoidCallback? callDo,
      String whateToDo, String actionNameWhat, String resultTip) {
    ScaffoldMessenger.of(context).hideCurrentSnackBar();
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(
      content: Text(whateToDo),
      action: SnackBarAction(
        label: actionNameWhat,
        onPressed: () {
          ScaffoldMessenger.of(context).hideCurrentSnackBar();
          ScaffoldMessenger.of(context).showSnackBar(SnackBar(
              duration: Duration(seconds: 10),
              action: SnackBarAction(
                label: '确定启动吗?',
                onPressed: () {
                  if (callDo != null) {
                    callDo();
                  }
                  print('****已启动!');
                },
              ),
              content: Text(
                resultTip,
              )));
        },
      ),
    ));
  }

 

调用:

Common.showBottomMessage(context, () => showTip(), '开启网络访问权限',
                      '开启', '意味着需要消耗更多的网络流量!');







 

函数定义

 

  void showTip() {
    Common.showMsg(context, '底部提示回调函数执行成功', '回调函数');
  }

 

 

另外:

还有以下类型可以使用

 

  • VoidCallback是一个匿名函数,它不接受任何参数并且不返回任何值。
  • ValueGetter是一个匿名函数,它返回一个值,您提供给想要获取它的人。
  • ValueSetter是一个匿名函数,它将一个值作为参数,您可以使用它来设置其他一些值。

 

posted on 2023-07-19 14:43  hztech  阅读(35)  评论(0编辑  收藏  举报

导航