当前位置: 首页 > news >正文

昆明网站建设-中国互联网页制作平台有哪些

昆明网站建设-中国互联,网页制作平台有哪些,十度公司做网站怎么样,wordpress注册链接背景: 在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释: 之所以会产生冲突,是因为Get.snackbar在关…

背景:
在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。

冲突解释:
之所以会产生冲突,是因为Get.snackbar在关闭时会有一个动画,这个动画的默认持续时间为1s,这个动画的持续时间内,Get.snackbar并没有真正意义上的关闭,这时候我们调用Get.back()是无法关闭Get.dialog。

实现:

  1. 创建一个统一的SnackBarManager去管理提示框。
import 'package:get/get.dart';
import 'package:flutter/material.dart';class SnackBarManager {factory SnackBarManager() => instance;static final SnackBarManager instance = SnackBarManager._internal();SnackBarManager._internal();String _lastMessage = '';int _lastDuration = 0;int _lastTime = 0;void showSnackBar(String title, String message, {Color? backgroundColor, Duration? duration}) {var currentTime = DateTime.now().millisecondsSinceEpoch;// 相同消息持续时间内重复提交时,返回if (currentTime - _lastTime < _lastDuration * 1000 && _lastMessage == message) {return;}dismissSnackBar();Get.snackbar(title,message,backgroundColor: backgroundColor ?? Colors.black12,duration: duration ?? Duration(seconds: 2), // 提示框持续时间animationDuration: Duration(milliseconds: 0), // 过渡动画的时间,这里设置为0是为了在使用Get.dialog时避免关闭冲突);_lastDuration = duration?.inSeconds ?? 2;_lastTime = DateTime.now().millisecondsSinceEpoch;_lastMessage = message;}void dismissSnackBar() {Get.closeCurrentSnackbar();}
}

这是一个避免重复显示的显示的提示框,可参考博客:Flutter中Get.snackbar避免重复显示的实现
2. 创建一个LoadingDialog去实现加载框。

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get/get_core/src/get_main.dart';class LoadingDialog {static void show([String? msg]) {Get.dialog(PopScope(canPop: false,child: Center(child: Container(padding: EdgeInsets.symmetric(horizontal: 24, vertical: 16), // 减小内边距decoration: BoxDecoration(color: Colors.white,borderRadius: BorderRadius.circular(8),),child: Row(mainAxisSize: MainAxisSize.min, // 设置为最小宽度children: [SizedBox(width: 24, // 减小加载图标尺寸height: 24,child: CircularProgressIndicator(strokeWidth: 2.0, // 可以适当减小进度条宽度),),SizedBox(width: 12), // 减小间距Text(msg ?? "加载中...",style: TextStyle(fontSize: 14, color: Colors.black), // 可以适当调整字体大小),],),),),),barrierDismissible: false,);}static void hide() {if (Get.isDialogOpen ?? false) {// 先关闭 SnackbarGet.closeCurrentSnackbar();// 添加延迟以确保 Snackbar 已关闭Future.delayed(Duration(milliseconds: 100), () {if (Get.isDialogOpen ?? false) {Get.back();}});}}
}

在关闭加载框之前,会先关闭提示框,由于Get.snackbar动画时长已经设置为0,此时延迟100ms后再关闭加载框是没有问题的。

http://www.hyszgw.com/news/26101.html

相关文章:

  • 泰州企业自助建站系统今日新闻内容摘抄
  • 南宁网站建设 超薄网络关键词优化营销
  • 湖北seo网站推广明天上海封控16个区
  • php网站建设与维护seo技术是干什么的
  • 内蒙古微网站建设信息流广告加盟代理
  • 自己怎么做卖东西的网站南昌seo管理
  • 苏州吴江做网站公司网站怎么优化seo
  • 做水电到哪个网站找信息东莞网络推广代运营
  • 公司建设网站的费用吗营销软文500字范文
  • 政府网站是哪个建设的如何做一个自己的电商平台
  • 佛山南海建设局网站小程序开发公司
  • 湛江seo建站开鲁网站seo不用下载
  • 做网站空间和服务器的学生没钱怎么开网店
  • 门户网站建站目标重庆网站推广
  • 怎么区分用vs和dw做的网站人民日报新闻
  • MAKA网站做H5怎么压缩图片在线网站分析工具
  • 深圳网站建设 独占网络桔子seo网
  • 什么是移动端网站适配seo整站优化技术培训
  • 什么类型的网站品牌推广运营策划方案
  • 企业网站优化爱用建站官网
  • 网站建设 广告推广购物网站推广方案
  • wordpress 获得分类名称大侠seo外链自动群发工具
  • 网站关键词选取的步骤热点新闻事件及评论
  • 没有网站可以做cpa广告么企业推广是什么意思
  • web背景网站兰州百度推广的公司
  • 网站流量好难做免费软文发布平台有哪些
  • 做任务赚钱网站源码百度竞价广告
  • 网站代码加密赣州seo排名
  • 黄骅港务集团广州网站优化公司排名
  • 贵州做网站的公司安康seo