Flutter 2进阶(六):回调函数的使用

2023-11-19

我看了一下,关于 Flutter 的回调和 Android 中的有点区别。所以记录一下,

下面是定义了一个有两个参数的回调:

//定义回调
typedef MyCallBack = Function(String val1, String val2);

//回调监听
class MyCallBackListener {
  final MyCallBack myCallBack;

  MyCallBackListener({this.myCallBack});
}

设置我收到的回调:

MyCallBackListener(myCallBack: (String val1, String val2) {
      print('收到回调:' + 'val1:' + val1 + 'val2:' + val2);
}

没参数的回调可以将上面的 MyCallBack 替换为系统提供的 VoidCallback;也可以直接把上面两个参数去掉;

定义回调并设置回调的完整代码:

import 'package:data_plugin/bmob/response/bmob_error.dart';
import 'package:data_plugin/bmob/response/bmob_saved.dart';
import 'package:data_plugin/bmob/table/bmob_object.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_blbl/utils/toast.dart';

import 'home_page_bean.dart';

class DataBaseUtil {
  ///保存一条数据
  static saveSingle(BmobObject bmobObject,
      {bool isShowToast, MyCallBackListener callBackListener}) {
    bmobObject.save().then((BmobSaved bmobSaved) {
      if (isShowToast) {
        showToast('数据保存成功');
        //设置回调
        callBackListener.myCallBack("参数1", "参数2");
      }
    }).catchError((e) {
      if (isShowToast) {
        showToast('数据保存失败:' + BmobError.convert(e).error);
        //设置回调
        callBackListener.myCallBack("参数1", "参数2");
      }
    });
  }
}

//定义回调
typedef MyCallBack = Function(String val1, String val2);

//回调监听
class MyCallBackListener {
  final MyCallBack myCallBack;

  MyCallBackListener({this.myCallBack});
}

设置回调并收到回调:

  _saveHomeDb() {
    HomePageBean homePage = HomePageBean();
    homePage.title = "电影剪辑";
    homePage.classname = "影视";
    homePage.videourl = "https://v-cdn.zjol.com.cn/280443.mp4";
    homePage.videoLength = "00:36";
    homePage.playnum = '1.4万';
    homePage.content = '精彩剪辑内容';
    homePage.type = 1;
    DataBaseUtil.saveSingle(homePage, isShowToast: true, callBackListener:
        MyCallBackListener(myCallBack: (String val1, String val2) {
      print('收到回调:' + 'val1:' + val1 + 'val2:' + val2);
    }));
  }

上面的 saveSingle 方法中参数有 {} 修饰表示参数可以传也可以不传。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 2进阶(六):回调函数的使用 的相关文章

  • 如何停止抖动中的计时器?

    我在 flutter 中创建了一个计时器 一切正常 现在我不知道如何在启动计时器后关闭它 文档说你可以通过调用取消它void cancel 但我不明白其实现 我该怎么称呼它 这是正确的方法吗 static const timeout con
  • 如何在 flutter 中获取应用内购买的唯一标识符,该标识符始终保持不变

    我正在使用在应用程序内购买 https pub dev packages in app purchase我的 Flutter 应用程序的包 我的应用程序中有一项非消耗性应用内购买 每个用户创建一个用户帐户 使用 Firebase 身份验证
  • 使用键和值从地图创建小部件列表

    如果我说一个SimpleDialog 它接受children 我想从一个填充它Map
  • 非抽象类“InternalSelectableMathState”缺少这些成员的实现[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 C src flutter pub cache hosted pub dartlang org flutter math
  • iPhone 上的 Flutter 底部填充颜色

    是否可以更改 iPhone 附带的底部填充的颜色 包裹你的 材料应用程序 与下面的代码main dart class AnnotatedRegion
  • Flutter - 将未来列表传递给 SearchDelegate

    我一直在关注 Flutter Search 教程 我一直在尝试使用从未来列表派生的列表来实现相同的功能 其中数据来自 api 在本例中是 Aqueduct 服务器 目前我的屏幕列出了 api 中的所有联系人 我现在想搜索该联系人列表 我假设
  • 如何自动调整 Flutter 中的图标尽可能大

    目前 我正在使用以下代码 body new Container child new Column crossAxisAlignment CrossAxisAlignment stretch mainAxisAlignment MainAxi
  • 当 TextFormField 聚焦时如何隐藏错误外观

    我在用着TextFormField用于表单和自定义验证器方法返回错误消息 我试图隐藏默认错误消息和错误边框TextFormField当文本字段获得焦点时 TextFormField focusNode focusNode validator
  • 如何使用 Dart 将列表拆分或分块为相等的部分?

    假设我有一个类似的列表 var letters a b c d e f g h 我想要一个列表 每个列表包含 2 个元素 var chunks a b c d e f g h 使用 Dart 执行此操作的好方法是什么 这是另一种方法 var
  • Dart / flutter:DropdownButton 在值更改时导致异常

    我已经使用写了一个相当广泛的表格DropdownButton and TextField小部件 这个概念是我有一个StatefulWidget 其中的类State
  • Flutter如何post json数组

    如何在 json 数组下面发布 LstUserOptions OptionID ca339e40 10cc 4459 b9ec 07f7df0f4c69 我找到了解决方案 List
  • flutter 动态查询 Firebase Firestore

    我正在创建一个视图 用户可以在其中选择多个元素 然后 通过在按钮上执行 onTap 这应该生成查询并在其他视图上显示查询结果 我的挑战是确保我获得用户选择的所有条件 然后使用多个字段值构建查询 我应该执行一个查询 然后对该查询进行查询等等
  • _CastError(类型“String”不是类型转换中“List”类型的子类型)

    我已经采取了各种方法来创建缓存的产品列表 然后用列表显示 但到目前为止仍然不起作用 任何人都可以帮助我 我的 Json fromCache id 2911 nama Abcd1 url myUrl id 2910 nama Abcd2 ur
  • Flutter:CachedNetworkImage不缓存图像

    我有一个从 Firebase 存储中检索图像的小部件 但现在我想缓存这些图像 以使用户体验更加简洁 并且还避免对 Firebase 的不必要的调用 所以我找到了 CachedNetworkImageProvider 它听起来像是我想要的一切
  • 颤动验证单选按钮

    如何将验证器函数添加到单选按钮列表中以便让它们验证 例如TextFormFields with formKey currentState validate 用户提交后Form 您可以复制粘贴运行下面的完整代码您可以使用包https pub
  • Flutter 导航到其他页面中的特定选项卡

    我正在尝试从一个页面导航到另一页面并设置选项卡栏的索引 这是我在第一页的代码 GestureDetector onTap Navigator push context MaterialPageRoute builder context gt
  • 颤动相机显得拉伸

    我一直在玩颤振 到目前为止我很喜欢它 但我在让相机工作时遇到了问题 我按照本页上的说明进行操作https pub dartlang org packages camera https pub dartlang org packages ca
  • 如何在flutter中绘制自定义形状卡片

    我只想创建这样的卡片 代码如下 我用的是CustomPaint小部件绘制自定义形状 然后在内部使用堆栈Card正确放置小部件的小部件 我没有图像 所以将其更改为粉红色以显示图像 这是卡片小部件的代码 然后是CustomPainter cla
  • Flutter:防止抽屉关闭

    Flutter 中是否可以防止关闭抽屉 我在用endDrawer作为网络应用程序中的表单 我已禁用滑动打开功能 并且我还希望只允许通过按钮关闭它 这样用户就不会通过单击外部意外地关闭它 但是我看不到任何布尔值 例如防止解雇或任何实施方式Wi
  • 如何将数据记录到Flutter控制台?

    我是一名初学者 正在使用 IntelliJ IDEA 我想将数据记录到控制台 I tried print and printDebug 但我的数据没有显示在 Flutter 控制台中 如果你在 Flutter 中Widget 您可以使用de

随机推荐

  • 经典问题(20)天平与砝码问题

    题目 如果有砝码序列 1 3 9 27 81 243 729 我们至少可以称量1000以内的所有整数重量 比如 5 9 3 1 即 9 放入对侧盘 3 1 放入同侧盘 再比如 19 27 9 1 编程的目标是 给定一个重量 求 天平称重时
  • Acwing-4729. 解密

    如果dt小于0 或者r不是整数 或者m r是奇数的话 m 2 与 m 2 的奇偶性相同 那么方程无解 输出NO include
  • 三进制计算机基本原理,三进制(三进制计算机)

    如题 越详细越好 最好再举个例子 十进制转任何进制都是采用整数除n取余倒序排列 小数乘n取整顺序排列的方法 比如 32 12 转 三进制 整数部分 32除以3商10余210除以3商3余13除以3商1余01除以3商 十进制数换三进制短除三 三
  • java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

    学生信息管理1 0 涉及的知识点 三层架构理论 简单理解三层架构就是 上层调用下层 下层为上层提供服务 最上层 视图层 由jsp servlet组成 中间层 服务层 组装数据访问层所实现的功能 最下层 数据访问层 实现单一得某项功能 为服务
  • CSS常用样式

    目录 引入CSS样式的三种方式 内联 行内 样式 内部样式表 外部样式表 基础选择器 标签选择器 标签 各种样式 类选择器 类名 各种样式 id选择器 id号 各种样式 字体样式 font 文本样式 鼠标样式 cursor 背景样式 bac
  • MySql保留两位小数

    1 格式化小数函数format x d format 函数会对小数部分进行四舍五入操作 整数部分从右向左每3位一个逗号进行格式化输出 三位小数 整数 不足两位的情况 0 001的情况 2 随机函数ROUND X D 三位小数 整数 不足两位
  • Python03-pytest框架

    Python03 pytest测试框架 pytest简介 支持参数化可以细分控制测试用例 支持简单的单元测试和复杂的功能测试 还支持selenium appium等自动化测试 接口自动化测试 支持第三方插件 可以自定义扩展 pytestht
  • Centos7下安装Zookeeper

    一 配置java环境 1 安装JDK yum install y java 1 8 0 openjdk 2 查看版本 root zookeeper java version openjdk version 1 8 0 362 OpenJDK
  • Python3.6读取excel指定数据并根据邮件列表群发

    python3 6版本 python下载地址 https www python org getit excel 工作簿名 shuju xlsx 会上传附件 sheet表1名称 数据 sheet表2名称 邮箱 请下载附件后填上正确的邮箱 实现
  • dev c++ 配置openGL

    折腾了一早上 总算成功了 亲测有效 参考了很多博客 但是都不完整 现把解决方案分享如下 WINDOWS配置 确保你的WINDOWS SYSTEM32文件下有如下文件 glu32 dll glut32 dll glut dll opengl3
  • 实训八 利用三层交换机实现不同VLAN间通信

    原理 在交换网络中 通过VLAN对一个物理网络进行了逻辑划分 不同的VLAN之间是无法直接访问的 必须通过三层的路由设备进行连接 一般利用路由器或三层交换机来实现不同VLAN之间的互相访问 三层交换机和路由器具备网络层的功能 能够根据数据的
  • python使用scipy.stats检验正态分布

    from scipy import stats import numpy as np np random seed 1 x stats norm rvs loc 0 scale 1 size 100 print list x 夏皮罗一威尔克
  • 企业微信开发:接受消息和发送消息

    简介 本篇博文是针对本人在开发企业微信消息交互的一些经验分享 介绍一下自己开发过程中遇到的问题和解决方法 如果问题或异议 欢迎讨论 技术大佬请忽略 用户在企业微信中有2种用户操作可以发送给我们服务器 1 点菜微信企业应用的菜单 2 给企业微
  • 教你如何单机搭建测试用的分布式系统(一)

    今天来写一篇博客 教大家如何搭建分布式系统 万事开头难 很多人放弃某样东西往往都是在刚开始的时候遇到了困难 所以有句话叫做 师傅领进门 修行靠个人 这个帖子权当作领各位进门吧 开始之前先聊一下我的学习经历吧 博主一开始是学java开发的 刚
  • 软件工程java毕设项目 SSM的毕业设计管理系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 2 1 系统开发流程 3 3 2 教师登录流程 3 3 3 系统操作流程 3 3 系统结构设计 4 项目获取 1 项目简介 Hi 各位
  • docker宿主机访问容器_Docker容器与宿主机器通过IP内外通讯

    例如一个如下场景 在Docker环境下面运行了一个含有PHP环境的Docker容器 container 容器名称为php1 同时在宿主机 真实机器 上面有一个MySQL服务器 如何来通过 容器内部的PHP程序来访问外部的MySQL呢 原理
  • 系统架构演变详解

    文章目录 1 单体架构 2 垂直架构 3 分布式架构 4 SOA架构 5 微服务 6 集群 分布式和微服务的区别 1 单体架构 在学习 Dubbo 之后 我们先了解一下系统架构的演变过程 随着用户量的不断增加 业务功能的扩展逐步 系统架构变
  • Qt 学习之路:深入 Qt5 信号槽新语法

    在前面的章节 信号槽和自定义信号槽 中 我们详细介绍了有关 Qt 5 的信号槽新语法 由于这次改动很大 许多以前看起来不是问题的问题接踵而来 因此 我们用单独的一章重新介绍一些 Qt 5 的信号槽新语法 基本用法 Qt 5 引入了信号槽的新
  • 【沐风老师】3DMAX一款神级一键四边面重拓扑插件Quad Remesher使用教程

    Quad Remesher是一款神级一键四边面重新拓扑插件 不需要太多介绍 看下面左右图像对比就知道了 适用版本 3dmax2016 2022 不仅限于此范围 其他自行测试 安装方法 直接拖动Quad Remesher插件脚本文件包 解压后
  • Flutter 2进阶(六):回调函数的使用

    我看了一下 关于 Flutter 的回调和 Android 中的有点区别 所以记录一下 下面是定义了一个有两个参数的回调 定义回调 typedef MyCallBack Function String val1 String val2 回调