函数中的回调函数参数的使用
函数 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是一个匿名函数,它将一个值作为参数,您可以使用它来设置其他一些值。