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

h5网站建设 网站定制开发wordpress企业仿站

h5网站建设 网站定制开发,wordpress企业仿站,做网站先做ue,个人网站建设方案书范文背景: 在使用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.yayakq.cn/news/61021/

相关文章:

  • 四川seo整站优化费用湛江专业建站优质商家
  • 青岛的网站设计公司高明骏域网站建设
  • 手机网站转换小程序株洲高端网站建设工作室
  • 电影网站开发iis7.5网站配置
  • 怎么样查看网站开发语言杭州网站制作平台公司
  • 网站建设好了却收不到成都广告设计公司排名
  • 昆明网站开发推广公司房产网 最新楼盘价格
  • 开封市住房和城乡建设局网站网站建设与管理的就业方向
  • 爱网站长尾关键词挖掘工具做ps可以在哪些网站上找素材
  • 山东省住房和城乡建设厅网站教育中心苏州吴中区做网站
  • 淄博网站建设网站推广优化seo服务理念
  • 郑州优化网站公司商场建设相关网站
  • 网站被黑客入侵怎么办网站运营周期
  • 网站资料清单常见的网站建设类型都有哪些方面
  • 深圳高端网站制作公司关键词代发包收录
  • 谷歌网站排名个人如果做网站赚钱
  • 河南艾特 网站建设全国企业信用信息系统网官网登录
  • 非洲购物网站排名腾讯微信朋友圈广告代理
  • 眼科医院网站设计怎么做定制wordpress
  • 安徽两学一做专题网站h5页面怎么生成链接
  • 弹窗广告最多的网站长沙网页设计公司排名
  • 开关网站建设宁波网站建设制作网络公司
  • 杭州建设网站需要多少钱网站建设模范代码
  • 网站建设怎么报价表平面设计有哪些公司
  • 创建虚拟网站做点击公司做网站的钱网银转账用途
  • 宁波江东区网站建设工作室注册流程及需要的材料
  • 银行官方网站陕西手机网站建设
  • 做网站定金交多少合适汇源企业网络营销策划
  • 成品网站网站建设代码介绍
  • 制作网站教学设计山西网站建设公司哪家好