iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于fluttertoast怎么实现封装弹框提示工具类
  • 468
分享到

基于fluttertoast怎么实现封装弹框提示工具类

2023-06-30 14:06:42 468人浏览 安东尼
摘要

本文小编为大家详细介绍“基于Fluttertoast怎么实现封装弹框提示工具类”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于fluttertoast怎么实现封装弹框提示工具类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来

本文小编为大家详细介绍“基于Fluttertoast怎么实现封装弹框提示工具类”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于fluttertoast怎么实现封装弹框提示工具类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实现效果

基于fluttertoast怎么实现封装弹框提示工具类

实现

先在pubspec.yaml文件汇总引入fluttertoast的包:

fluttertoast: ^8.0.8 # 弹窗

封装弹框工具类DialogUtils:

import 'package:flutter/material.dart';import 'package:fluttertoast/fluttertoast.dart';/// @author longzipeng/// @创建时间:2022/2/24/// 封装自定义弹框class DialogUtils {  /// 基础弹框  static alert(    BuildContext context, {    String title = "提示",    String content = "",    GestureTapCallback? confirm,    GestureTapCallback? cancle,    List<Widget>? actions, // 自定义按钮  }) {    showDialog(        context: context,        builder: (context) {          return AlertDialog(            title: Text(              '提示',              style: TextStyle(color: Theme.of(context).primaryColor),            ),            content: Text(content),            actions: actions ??                <Widget>[                  InkWell(                    onTap: () {                      if (cancle != null) {                        cancle();                      }                      Navigator.of(context).pop();                    },                    child: const Padding(                      padding: EdgeInsets.only(right: 20),                      child: Text(                        "取消",                        style: TextStyle(color: Colors.grey),                      ),                    ),                  ),                  InkWell(                    onTap: () {                      if (confirm != null) {                        confirm();                      }                      Navigator.of(context).pop();                    },                    child: Padding(                      padding: const EdgeInsets.only(right: 10),                      child: Text(                        "确定",                        style: TextStyle(color: Theme.of(context).primaryColor),                      ),                    ),                  )                ],          );        });  }  /// 弹出关于界面  static alertAboutDialog(BuildContext context) {    showAboutDialog(      context: context,      applicationIcon: FlutterLoGo(),      applicationName: 'flutterdemo',      applicationVersion: '1.0.0',      applicationLegalese: 'copyright 编程小龙',      children: <Widget>[        Container(          height: 70,          child: const Text(            "总而言之,言而总之,时而不知,终究自知",            maxLines: 2,            style: TextStyle(),          ),        ),      ],    );  }  /// 显示普通消息  static showMessage(String msg,      {toastLength: Toast.LENGTH_SHORT,      gravity: ToastGravity.CENTER,      timeInSecForiOSWEB: 1,      backgroundColor: Colors.grey,      fontSize: 16.0}) {    // 先关闭弹框再显示对应弹框    Fluttertoast.cancel();    Fluttertoast.showToast(        msg: msg,        toastLength: toastLength,        gravity: gravity,        timeInSecForIosWeb: timeInSecForIosWeb,        backgroundColor: backgroundColor,        fontSize: fontSize);  }  /// 显示错误消息  static showErrORMessage(String msg,      {toastLength: Toast.LENGTH_SHORT,      gravity: ToastGravity.CENTER,      timeInSecForIosWeb: 1,      backgroundColor: Colors.red,      fontSize: 16.0}) {    showMessage(msg,        toastLength: toastLength,        gravity: gravity,        timeInSecForIosWeb: timeInSecForIosWeb,        backgroundColor: backgroundColor,        fontSize: fontSize);  }  /// 显示警告信息  static showWaringMessage(String msg,      {toastLength: Toast.LENGTH_SHORT,      gravity: ToastGravity.CENTER,      timeInSecForIosWeb: 1,      backgroundColor: Colors.orangeAccent,      fontSize: 16.0}) {    showMessage(msg,        toastLength: toastLength,        gravity: gravity,        timeInSecForIosWeb: timeInSecForIosWeb,        backgroundColor: backgroundColor,        fontSize: fontSize);  }  /// 显示成功消息  static showSucceSSMessage(String msg,      {toastLength: Toast.LENGTH_SHORT,        gravity: ToastGravity.CENTER,        timeInSecForIosWeb: 1,        backgroundColor: Colors.greenAccent,        fontSize: 16.0}) {    showMessage(msg,        toastLength: toastLength,        gravity: gravity,        timeInSecForIosWeb: timeInSecForIosWeb,        backgroundColor: backgroundColor,        fontSize: fontSize);  }}

测试

注意:这里ListTitleWidget是自己封装的组件,直接改为ListTitle就不会报错了

import 'package:csdn_flutter_demo/pages/common/common_appbar.dart';import 'package:csdn_flutter_demo/utils/dialog_utils.dart';import 'package:csdn_flutter_demo/widgets/list_title_widgets.dart';import 'package:flutter/material.dart';/// @author longzipeng/// @创建时间:2022/3/31/// 弹框演示页面class DialogUtilsDemoPage extends StatefulWidget {  const DialogUtilsDemoPage({Key? key}) : super(key: key);  @override  State<DialogUtilsDemoPage> createState() => _DialogUtilsDemoPageState();}class _DialogUtilsDemoPageState extends State<DialogUtilsDemoPage> {  /// 查询数据  search(value) {    print("搜索的值为:$value");  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: const CommonAppbar(        title: "弹窗、提示演示",      ),      body: ListView(        children: [          ListTitleWidget(            title: const Text("弹框,带确认和取消"),            onTap: () {              DialogUtils.alert(context, content: "靓仔、靓女们,一起学习flutter!",                  confirm: () {                print("点击了确认");              }, cancle: () {                print("点击了取消");              });            },          ),          ListTitleWidget(            title: const Text("默认提示"),            onTap: () {              DialogUtils.showMessage("默认提示");            },          ),          ListTitleWidget(            title: const Text("成功提示"),            onTap: () {              DialogUtils.showSuccessMessage("成功提示");            },          ),          ListTitleWidget(            title: const Text("警告提示"),            onTap: () {              DialogUtils.showWaringMessage("警告提示");            },          ),          ListTitleWidget(            title: const Text("错误提示"),            onTap: () {              DialogUtils.showErrorMessage("错误提示");            },          ),        ],      ),    );  }}

读到这里,这篇“基于fluttertoast怎么实现封装弹框提示工具类”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 基于fluttertoast怎么实现封装弹框提示工具类

本文链接: https://www.lsjlt.com/news/329499.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于fluttertoast实现封装弹框提示工具类
    目录提示实现效果实现测试提示 已将代码上传至gitee,后续会继续更新学习封装的一些组件: flutter练习 实现效果 实现 1.先在pubspec.yaml文件汇总引入flut...
    99+
    2024-04-02
  • 基于fluttertoast怎么实现封装弹框提示工具类
    本文小编为大家详细介绍“基于fluttertoast怎么实现封装弹框提示工具类”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于fluttertoast怎么实现封装弹框提示工具类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-30
  • 基于Android6.0实现弹出Window提示框
    在项目中经常会需要应用弹出一些自定义的窗口,这时候Android自带的系统Dialog就无法满足我们的需求了,为了满足项目需求,我们可以使用Window来满足这一需求。 首先我们新建...
    99+
    2024-04-02
  • android弹出提示框怎么实现
    要在Android中实现弹出提示框,你可以通过以下几种方式实现:1. 使用AlertDialog:AlertDialog是Andro...
    99+
    2023-10-08
    android
  • laravel弹出提示框效果怎么实现
    今天小编给大家分享一下laravel弹出提示框效果怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。laravel中弹出...
    99+
    2023-07-04
  • 基于Java实现进制转换工具类的示例代码
    目录背景原理十进制A转换为N进制RN进制R转换为十进制A应用延伸背景 最近有个发送短信的功能,需要在短信中带有详情链接,链接中带有对应信息且要有校验功能,然而短信是按字数收费的,所以...
    99+
    2023-02-19
    Java进制转换工具类 Java进制转换
  • 基于Python怎么实现对比Exce的工具
    这篇“基于Python怎么实现对比Exce的工具”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Python怎么实现对比E...
    99+
    2023-06-29
  • 基于element-ui表格的二次封装怎么实现
    这篇文章主要讲解了“基于element-ui表格的二次封装怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于element-ui表格的二次封装怎么实现”吧!在项目中经常会使用到ele...
    99+
    2023-07-02
  • 怎么使用jQuery实现页面弹出提示框功能
    本篇内容主要讲解“怎么使用jQuery实现页面弹出提示框功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用jQuery实现页面弹出提示框功能”吧!一、了解jQueryjQuery是一款快...
    99+
    2023-07-05
  • 基于Python怎么实现自动化文档整理工具
    应用场景个人文件整理:个人在计算机上存储了大量的照片、视频和文档文件,这些文件可能分散在不同的文件夹中,使用该程序可以将这些文件整理到不同的文件夹中,并按照文件类型分类,方便管理和查找。批量文件处理:需要批量处理某个文件夹中的所有文件,如将...
    99+
    2023-05-14
    Python
  • Java基于装饰者模式实现的图片工具类实例【附demo源码下载】
    本文实例讲述了Java基于装饰者模式实现的图片工具类。分享给大家供大家参考,具体如下:ImgUtil.java:package util;import java.io.File;import java.util.List;public in...
    99+
    2023-05-31
    java 装饰者模式 图片
  • 怎么用Python实现基于Pyqt5的简单电影搜索工具
    这篇文章主要介绍“怎么用Python实现基于Pyqt5的简单电影搜索工具”,在日常操作中,相信很多人在怎么用Python实现基于Pyqt5的简单电影搜索工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用...
    99+
    2023-06-02
  • 基于JS实现弹性漂浮广告的示例代码怎么写
    这期内容当中小编将会给大家带来有关基于JS实现弹性漂浮广告的示例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。效果图1.功能(鼠标移入移出事件、点击事件、定时器控制移动)div实现在页面上移动,...
    99+
    2023-06-26
  • 纯CSS怎么实现微信小程序仿QQ顶部提示弹框动画效果
    这篇文章将为大家详细讲解有关纯CSS怎么实现微信小程序仿QQ顶部提示弹框动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果思路 用css的animation属性做动画代码wxml:<view...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作