Flutter成功确认提示插件confirmation_success的使用

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

Flutter成功确认提示插件confirmation_success的使用

标题

Flutter成功确认提示插件confirmation_success的使用

内容

此README描述了该库的功能。如果您将此库发布到pub.dev,此README的内容将出现在您的包的着陆页面上。

截图 #

功能 #

在任务/订单完成后以自定义消息控件进行响应。

开始 #

使用 #

示例 要使用此包:

  • 将依赖项添加到您的pubspec.yaml文件中。
dependencies:
  flutter:
    sdk: flutter
  confirmation_success:

如何使用 #

 ConfirmationSuccess(
  reactColor: Colors.green,
  child: Text("VOILA!",
    style: TextStyle(
      fontSize: 25,
      color: black,
      fontWeight: FontWeight.bold)))
}))

许可证 #

版权所有 (c) 2023 Amanuel Tito

根据本软件及其关联文档文件(“软件”)的副本或重要部分的使用,授予任何个人以下权利,免费且无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、授予子许可和/或销售软件,并允许向其提供软件的人也这样做,但需满足以下条件:

上述版权通知和本许可通知应包含在所有副本或重要部分的软件中。

软件按现状提供,不附有任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性等保证。在任何情况下,作者或版权持有人都不对因使用或无法使用软件而产生的任何索赔、损害或其他责任负责,无论是否基于合同、侵权或其它原因,与软件或使用或其它处理软件有关。

开始 #

有关如何开始使用Flutter,请参阅我们的在线文档

有关编辑包代码的帮助,请参阅文档

联系我 #

通过Telegram联系我 [@emantggw](/user/emantggw)

示例代码

import 'dart:async';

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

class ParkingConfirmedScreen extends StatefulWidget {
  [@override](/user/override)
  State<ParkingConfirmedScreen> createState() => _ParkingConfirmedScreenState();
}

class _ParkingConfirmedScreenState extends State<ParkingConfirmedScreenState> {
  Color yellow = const Color(0xFFFDC435);
  Color black = const Color.fromARGB(255, 36, 35, 35);
  Color white = const Color.fromARGB(179, 1190, 1179, 1179);
  StreamSubscription&lt;void&gt;? _sub;
  bool isSuccess = false;
  [@override](/user/override)
  void initState() {
    // WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
    //   _sub = _navigateAfter().asStream().listen((event) {});
    // });
    super.initState();
  }

  [@override](/user/override)
  void dispose() {
    _sub?.cancel();
    super.dispose();
  }

  Future&lt;void&gt; _navigateAfter() async {
    if (mounted {
      await Future.delayed(const Duration(seconds: 15), navigateToHome);
    }
  }

  Future&lt;bool&gt; navigateToHome() async {
    // Navigator.of(context).pushAndRemoveUntil(
    //   MaterialPageRoute(
    //     builder: (context) =&gt; HomeScreen(
    //       selectedIndex: 0,
    //     ),
    //   ),
    //   (Route&lt;dynamic&gt; route) =&gt; false,
    // );
    return true;
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: navigateToHome,
      child: Scaffold(
        backgroundColor: black,
        floatingActionButton: SizedBox(
          width: MediaQuery.of(context).size.width * 0.55,
          child: FloatingActionButton.extended(
              backgroundColor: const Color.fromARGB(255, 53, 50, 50),
              onPressed: navigateToHome,
              label: Text(
                "OKAY",
                style: TextStyle(color: yellow, fontSize: 16),
              )),
        ),
        floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        body: CustomScrollView(
          slivers: [
            SliverAppBar(
              automaticallyImplyLeading: false,
              backgroundColor: Colors.transparent,
              leading: GestureDetector(
                onTap: navigateToHome,
                child: Icon(
                  Icons.arrow_back_ios,
                  color: yellow,
                ),
              ),
            ),
            SliverToBoxAdapter(
              child: SizedBox(
                  height: MediaQuery.of(context).size.height / 2 - 2 * kToolbarHeight - 120),
            ),
            SliverToBoxAdapter(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  ConfirmationSuccess(
                      reactColor: yellow,
                      bubbleColors: [yellow],
                      numofBubbles: 35,
                      maxBubbleRadius: 8,
                      child: const Text("VOILA!",
                          style: TextStyle(color: Colors.black, fontSize: 18))),
                  const SizedBox(
                    height: 40,
                  ),
                  const Divider(
                    height: 2,
                    color: Color.fromARGB(179, 55, 51, 51),
                  ),
                  SizedBox(
                    width: MediaQuery.of(context).size.width * 0.8,
                    child: Center(
                      child: Padding(
                        padding: const EdgeInsets.only(top: 40),
                        child: Text(
                          "We've recived your order!",
                          style: TextStyle(
                            color: white,
                            fontSize: 16,
                          ),
                        ),
                      ),
                    ),
                  ),
                  const SizedBox(
                    height: 35,
                  ),
                  const Divider(
                    height: 2,
                    color: Color.fromARGB(179, 55, 51, 51),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

使用说明

  1. 添加依赖:首先,在 pubspec.yaml 文件中添加依赖。
    dependencies:
      flutter:
        sdk: flutter
      confirmation_success:
    

2 导入相关库:在需要使用的 Dart 文件中导入 confirmation_successMaterial 库。

import 'dart:async';

import 'package:confirmation_success/confirmation_success.dart';
import 'package:flutter/material.dart';
  1. 创建状态类:创建一个继承自 StatefulWidget 的的状态类。

    class ParkingConfirmedScreen extends StatefulWidget {
      [@override](/user/override)
      State&lt;ParkingConfirmedScreen&gt; createState() =&gt; _ParkingConfirmedScreenState();
    }
    
  2. 初始化状态:在 initState 方法中初始化状态变量。

    [@override](/user/override)
    void initState() {
      // WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      //   _sub = _navigateAfter().asStream().listen((event) {});
      // });
      super.initState();
    }
    
  3. 释放资源:在 dispose 方法中取消订阅并调用父类的 dispose 方法。

    [@override](/user/override)
    void dispose() {
      _sub?.cancel();
      super.dispose();
    }
    

6 监听事件:在 _navigateAfter 方法中设置监听器。


更多关于Flutter成功确认提示插件confirmation_success的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter成功确认提示插件confirmation_success的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,关于confirmation_success这个Flutter插件的使用,我可以为你提供一个简单的代码示例来展示如何集成和使用这个插件来显示成功确认提示。不过,需要注意的是,confirmation_success这个具体的插件名称在Flutter的官方插件库中并不常见,因此我假设它是一个自定义的或者第三方插件。不过,大部分Flutter插件的使用方式都大同小异,以下是一个假设性的示例代码,展示如何在一个Flutter应用中集成并使用一个类似的成功确认提示插件。

首先,确保你的pubspec.yaml文件中已经添加了该插件的依赖(假设插件名为confirmation_success):

dependencies:
  flutter:
    sdk: flutter
  confirmation_success: ^x.y.z  # 替换为实际的版本号

然后,运行flutter pub get来获取依赖。

接下来,在你的Flutter应用中,你可以这样使用它:

import 'package:flutter/material.dart';
import 'package:confirmation_success/confirmation_success.dart';  // 假设插件的导入路径

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void _showSuccessConfirmation() {
    // 假设插件提供了一个show方法
    ConfirmationSuccess.show(
      context: context,
      message: 'Operation successful!',
      duration: Duration(seconds: 3),  // 显示时间
      onDismiss: () {
        // 当提示消失后的回调
        print('Confirmation dismissed');
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Confirmation Success Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showSuccessConfirmation,
          child: Text('Show Success Confirmation'),
        ),
      ),
    );
  }
}

在这个示例中,我们假设confirmation_success插件提供了一个静态的show方法,该方法接受一些参数来配置提示的显示内容、时长以及消失后的回调。当然,实际插件的API可能会有所不同,所以你需要参考插件的官方文档或源代码来了解具体的用法。

如果confirmation_success插件不存在,或者它的用法与上述假设不同,你可能需要查找一个类似的插件,如fluttertoastflutter_toasty等,这些插件常用于显示各种提示信息,并且它们的使用方式通常也会在各自的官方文档中有详细说明。

回到顶部