Flutter订单追踪插件order_tracker_zen的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter订单追踪插件order_tracker_zen的使用

制作一个精美的订单追踪器对于你的电商应用来说不是问题。

展示

有什么不同?

标题 其他订单追踪器 Order Tracker Zen
订单跟踪功能
动画
自定义订单标题 👎🏻
使用自定义样式 👎🏻
切换展开和收缩仅需一个变量 👎🏻
邮件支持(由Zenzzen提供) 👎🏻
可收缩 👎🏻

我们的团队始终乐于帮助像你这样的技术爱好者。如果你遇到任何困难,可以通过电子邮件联系我们:dev_support@zenzzen.com

如何开始?

你可以通过以下命令从命令行添加依赖:

flutter pub add order_tracker_zen

或者在你的pubspec.yaml文件中添加它:

dependencies:
  order_tracker_zen:

如何使用?

使用它就像创建一个TextFormField一样简单。你不相信?让我展示给你看:

OrderTrackerZen(
  tracker_data: [
    TrackerData(
      title: "订单已下",
      date: "周六, 8 四月 '22",
      tracker_details: [
        TrackerDetails(
          title: "您的订单已在Zenzzen下单",
          datetime: "周六, 8 四月 '22 - 17:17",
        ),
        TrackerDetails(
          title: "Zenzzen安排了回拨请求",
          datetime: "周六, 8 四月 '22 - 17:42",
        ),
      ],
    ),
    TrackerData(
      title: "订单已发货",
      date: "周六, 8 四月 '22",
      tracker_details: [
        TrackerDetails(
          title: "您的订单已通过MailDeli发货",
          datetime: "周六, 8 四月 '22 - 17:50",
        ),
      ],
    ),
    TrackerData(
      title: "订单已送达",
      date: "周六, 8 四月 '22",
      tracker_details: [
        TrackerDetails(
          title: "您已通过MailDeli收到您的订单",
          datetime: "周六, 8 四月 '22 - 17:51",
        ),
      ],
    ),
  ],
)

看起来很长?别担心…这是因为这里使用了硬编码的数据。在实际项目中,你应该使用循环来动态生成这些数据。

现在让我解释一下OrderTrackerZenTrackerDataTrackerDetails 是什么。

  • OrderTrackerZen 是整个订单追踪器的主要容器,如:

  • TrackerData 是包含跟踪详情的容器。

  • TrackerDetails 是单个跟踪详情。

额外参数(可选)

  • success_color: 进度条的颜色
  • background_color: 进度条的背景颜色
  • screen_background_color: 进度条上的点有一个小边框,这必须与背景颜色匹配,以达到一致的效果
  • text_primary_color: 主要文本颜色
  • text_secondary_color: 次要文本颜色
  • isShrinked: 这个布尔值可以在收缩和详细视图之间切换

这是Zenzzen团队为你特别制作的,现在轮到你了,创造一款震撼人心的应用吧!

完整示例代码

/// Order Tracker Zen
///
/// A Flutter package that provides a simple and customizable order tracking widget for your applications.
/// This example demonstrates how to create an order tracking widget using the OrderTrackerZen package.
///
/// To use this package, add `order_tracker_zen` as a dependency in your `pubspec.yaml` file.
import 'package:flutter/material.dart';
import 'package:order_tracker_zen/order_tracker_zen.dart';

/// The main function is the entry point of the application.
void main(List<String> args) {
  runApp(MyApp());
}

/// MyApp is a StatelessWidget that acts as the root widget of the application.
///
/// It configures the MaterialApp with the necessary theme and routing information.
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        useMaterial3: true,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const Text("Order Tracker Zen"),
        ),
        body: Center(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              // Add padding around the OrderTrackerZen widget for better presentation.
              Padding(
                padding: EdgeInsets.symmetric(horizontal: 20, vertical: 30),
                // OrderTrackerZen is the main widget of the package which displays the order tracking information.
                child: OrderTrackerZen(
                  // Provide an array of TrackerData objects to display the order tracking information.
                  tracker_data: [
                    // TrackerData represents a single step in the order tracking process.
                    TrackerData(
                      title: "订单已下",
                      date: "周六, 8 四月 '22",
                      // Provide an array of TrackerDetails objects to display more details about this step.
                      tracker_details: [
                        // TrackerDetails contains detailed information about a specific event in the order tracking process.
                        TrackerDetails(
                          title: "您的订单已在Zenzzen下单",
                          datetime: "周六, 8 四月 '22 - 17:17",
                        ),
                        TrackerDetails(
                          title: "Zenzzen安排了回拨请求",
                          datetime: "周六, 8 四月 '22 - 17:42",
                        ),
                      ],
                    ),
                    // Yet another TrackerData object
                    TrackerData(
                      title: "订单已发货",
                      date: "周六, 8 四月 '22",
                      tracker_details: [
                        TrackerDetails(
                          title: "您的订单已通过MailDeli发货",
                          datetime: "周六, 8 四月 '22 - 17:50",
                        ),
                      ],
                    ),
                    // And yet another TrackerData object
                    TrackerData(
                      title: "订单已送达",
                      date: "周六, 8 四月 '22",
                      tracker_details: [
                        TrackerDetails(
                          title: "您已通过MailDeli收到您的订单",
                          datetime: "周六, 8 四月 '22 - 17:51",
                        ),
                      ],
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter订单追踪插件order_tracker_zen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter订单追踪插件order_tracker_zen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中集成和使用order_tracker_zen插件的示例代码案例。假设你已经有一个现有的Flutter项目,并且需要在其中实现订单追踪功能。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加order_tracker_zen依赖。

dependencies:
  flutter:
    sdk: flutter
  order_tracker_zen: ^latest_version  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 初始化插件

在你的主应用文件(通常是main.dart)或者某个初始化逻辑中,配置和初始化order_tracker_zen插件。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Order Tracker Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: OrderTrackerDemo(),
    );
  }
}

class OrderTrackerDemo extends StatefulWidget {
  @override
  _OrderTrackerDemoState createState() => _OrderTrackerDemoState();
}

class _OrderTrackerDemoState extends State<OrderTrackerDemo> {
  OrderTrackerZen? _orderTracker;

  @override
  void initState() {
    super.initState();
    // 初始化OrderTrackerZen
    _orderTracker = OrderTrackerZen(
      apiKey: 'YOUR_API_KEY', // 请替换为你的API密钥
      orderId: 'YOUR_ORDER_ID', // 请替换为你的订单ID
    );

    // 监听订单状态更新
    _orderTracker?.listenForOrderUpdates((OrderStatus status) {
      // 在这里处理订单状态更新
      print('Order status updated: ${status.toJson()}');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Order Tracker Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 获取订单详情
            OrderDetails? details = await _orderTracker?.getOrderDetails();
            if (details != null) {
              // 显示订单详情
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(
                  content: Text('Order Details: ${details.toJson()}'),
                ),
              );
            }
          },
          child: Text('Get Order Details'),
        ),
      ),
    );
  }

  @override
  void dispose() {
    // 释放资源
    _orderTracker?.dispose();
    super.dispose();
  }
}

3. 处理订单状态

在上面的代码中,_orderTracker?.listenForOrderUpdates方法用于监听订单状态的更新。每当订单状态发生变化时,你都会收到一个OrderStatus对象,你可以根据这个对象来处理订单状态的变化。

4. 获取订单详情

通过调用_orderTracker?.getOrderDetails()方法,你可以获取订单的详细信息,并在UI中显示这些信息。

注意事项

  1. API Key 和 Order ID:请确保你替换了示例代码中的YOUR_API_KEYYOUR_ORDER_ID为实际的值。
  2. 错误处理:在实际应用中,你应该添加适当的错误处理逻辑,以处理可能发生的异常,比如网络错误或API调用失败。
  3. UI更新:如果你需要在UI中实时显示订单状态的变化,可以考虑使用ProviderRiverpodBloc等状态管理库来管理应用状态。

这个示例代码展示了如何在Flutter项目中集成和使用order_tracker_zen插件来进行订单追踪。根据具体需求,你可以进一步扩展和自定义这个示例。

回到顶部