写在前面 在 Flutter 开发中,灵活使用函数之间的回调带来了多种好处,包括提高可重用性、简化异步编程、增强解耦设计以及提升用户体验。回调不仅使代码更易于理解和维护,还使得处理复杂逻辑变得简单且高效。因此,掌握回调函数的使用是 Flutter 开发者的重要技能。

示例代码 以下是我们将要讨论的完整代码:

main.dart: import 'package:flutter/material.dart';

import 'one.dart';

void main() { runApp(MyApp()); }

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Custom Callback Example', home: CallbackExample(), ); } }

var age = "18";

class CallbackExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Custom Callback Example'), ), body: Center( child: ElevatedButton( onPressed: () { onok(); }, child: Text('开始任务'), ), ), ); } }

onok() { one(123456789, "XIAOLI", (success) { if(success == true){ print("age=$age"); }else if(success == false){ print("one函数回调false的逻辑"); } }); }

one.dart: Future one(int? ID, String? name,Function(bool) callback) async { Map<String,dynamic>List = { 'ID':ID, 'name':name }; var num = List.length; if(num!=0){ callback(true); } } 代码解析

  1. 主入口 main 函数 void main() { runApp(MyApp()); } main 函数是 Flutter 应用的入口点,它调用 runApp 函数来启动应用。这里我们传入一个 MyApp 实例。
  2. MyApp 类 class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Custom Callback Example', home: CallbackExample(), ); } } MyApp 是应用的根组件,返回一个 MaterialApp,它设置了应用的标题和主页。在这个例子中,主页是 CallbackExample。
  3. CallbackExample 类 class CallbackExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Custom Callback Example'), ), body: Center( child: ElevatedButton( onPressed: () { onok(); }, child: Text('开始任务'), ), ), ); } }

CallbackExample 是一个无状态组件,其中包含一个 ElevatedButton 按钮。当用户点击按钮时,将调用 onok 函数。

  1. onok 函数 void onok() { one(123456789, "XIAOLI", (success) { if (success == true) { print("age=$age"); } else if (success == false) { print("one函数回调false的逻辑"); } }); } onok 函数调用 one 函数,传入三个参数:一个 ID(123456789)、一个 name("XIAOLI")以及一个回调函数。回调函数接受一个布尔值 success,用于判断操作是否成功。

如果 success 为 true,打印 age 的值。 如果 success 为 false,打印一条失败的逻辑。 5. one 函数 Future one(int? ID, String? name, Function(bool) callback) async { Map<String, dynamic> list = { 'ID': ID, 'name': name }; var num = list.length; // 如果数据不为空,则调用回调函数并返回成功状态 if (num != 0) { callback(true); } else { callback(false); } } one 函数模拟了一个异步操作,它接受三个参数:ID、name 和一个回调函数 callback。

使用 Map 将 ID 和 name 存储为键值对。 计算 list 的长度,如果不为0,调用回调函数并传入 true;否则传入 false。 写在后面 通过这个简单的示例,我们展示了如何在 Flutter 中实现函数调用和回调的基本使用。回调函数是处理异步操作的有效方式,它允许我们在操作完成后执行特定的逻辑。

这种模式非常适合在网络请求、文件处理或其他需要异步操作的场景中使用。通过使用回调,我们能够在操作完成后获取结果,并根据结果做出相应的处理。这种灵活性使得代码更具可读性和可维护性。

在实际应用中,你可以根据需要修改回调函数,以实现更复杂的逻辑。这种方式可以大大增强你的 Flutter 应用的响应能力和用户体验。 ————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/lbcyllqj/article/details/142897133