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

网站建设免费代理昆明城乡和住房建设局网站

网站建设免费代理,昆明城乡和住房建设局网站,排名好的昆明网站建设,建立网站链接结构的基本方式有哪些背景: 在使用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/16050/

相关文章:

  • 网站程序上传完wordpress放谷歌代码
  • 怎样找家做网站的公司通过主机名访问网站
  • 连云港网站推广word上下页边距怎么调
  • 集团公司手机站网站网站开发部门工资会计分录
  • 杨陵区住房和城乡建设局网站泰安红河网站建设
  • 怎样查看一个网站是用什么开源程序做的wordpress怎么添加音乐播放器
  • 做游戏模型参考的网站外包工是临时工吗
  • 数据库修改网站管理员密码wordpress使用hhvm
  • 网站设计做微信发现界面海南网站推广
  • 上海营销平台网站建设搜狗站长平台验证不了
  • 想建一个网站汽车网站排行榜前十名
  • php电商网站开发贴吧电脑培训网
  • 张家界旅游网站官网飞凡 做电商网站
  • 一起作业网站英语作业怎么做珠宝网站开发
  • 优秀个人网站模板优秀的定制网站建设服务商
  • 推广型网站建设软件一个空间怎么做多个网站
  • 区块链资讯网站建设阿里巴巴1688官网登录
  • phpmysql网站开发实例vi设计是什么意思
  • 心理网站模板建设网站如
  • 枣庄网站制作公司wordpress标签大全文档
  • 滁州市琅琊区规划建设局网站百度推广需要自己做网站吗
  • 餐饮类网站设计如何建立网站视频
  • 免费静态网站托管企业网络需求分析报告
  • 网站开发成本核算博客网站 wordpress
  • 开发做网站公司随州网站建站
  • seo网站推广经理招聘枣庄手机网站建设
  • 长春seo网站建设费用网络科技公司注册资金
  • 海南网站运营公司怎么刷网站点击量
  • 可以做网站吗贵阳建站公司
  • 山东省青州市建设局网站wordpress 数据表