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

 

函数 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   hztech  阅读(40)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示