首页 > 其他分享 >如何显示页面底部弹窗

如何显示页面底部弹窗

时间:2024-06-13 23:28:42浏览次数:19  
标签:控制 显示 SnackBar 底部 使用 属性 方法 弹窗 页面

文章目录


我们在上一章回中介绍了"GetMaterialApp组件"相关的内容,本章回中将介绍使用get显示SnackBar.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在介绍Get包时提到该提供了一些实用功能,显示SnackBar就是其中之一,本章回中将详细介绍如何显示SnackBar.

2. 使用方法

在项目中SnackBar是常用的组件,Get包提供了两种显示SnackBar的方法:一种使用固定的样式,简单易用,另外一种使用自定义样式,可以自行扩展。我们将在接下
来的小节中介绍这两种方法。

2.1 固定样式

包中提供了snackbar()方法来显示SnackBar,我们只需要给该方法传递title和message两个参数就可以。该方法是静态方法,直接使用Get.snckbar()就可以在
页面顶部显示一个透明的SnackBar.如果想修改SnackBar的位置,颜色等主题风格,可以使用方法中的其它参数,详细如下:

  • snackPosition:用来控制snackBar在页面中的位置;
  • borderRadius:用来控制snackBar窗口的圆角大小;
  • borderColor:用来控制snackBar窗口边框的线条颜色;
  • backgroundColor:用来控制snackBar窗口的背景颜色;
  • borderWidth:用来控制snackBar窗口边框的线条粗细;
  • instantInit:用来控制是否使用默认的snackBar;
    上面介绍的这些参数比较好用,从名字就能看出来它们的用法与功能,snackbar()方法还提供了其它的参数,大家可以参考该方法的文档或者源代码。需要注意的是在
    使用这些参数时需要把instantInit参数的值设置为false,这样才可以使用这些参数,否则它会使用默认的SnackBar。在大部分情况下,只需要给该方法传递title
    和message两个参数使用默认的样式就可以,因此我们称这种使用SnackBar的方法为"固定样式"。

2.2 自定义样式

包中提供了showSnackbar()方法,我们需要给该方法传递一个GetSnackBar类型的对象,该方法是静态方法,直接使用Get.showSnackbar()就可以在页面底部
显示一个SnackBar.其实这个showSnackbar方法在Material方法中也有同名的方法,它们用法相同,最大的区别就是Get包中使用该方法时不需要传递BuildContext
类型的对象,因此使用该方法十分的方便。我们再回头介绍一下GetSnackBar组件,它和官方提供的SnackBar组件用法相似,也是通过属性来控制组件,不过它添加一
些其它的功能,比如显示进度条等。下面是该组件中常用的属性:

  • title属性:用来控制SnackBar中的标题;
  • message属性:用来控制SnackBar中显示的内容;
  • duration属性:用来控制SnackBar显示的时间;
  • backgroundColor属性:用来控制SnackBar的背景颜色;
  • margin属性:用来控制SnackBar与屏幕的边距;
  • borderRadius属性:用来控制SnackBar的形状,主要是控制圆角;
  • showProgressIndicator属性:用来控制SnackBar顶部是否显示水平滚动条;
  • snackPosition属性:用来控制SnackBar在页面中的位置;
  • snackStyle属性:用来控制SnackBar的属性,通常设置为SnackStyle.FLOATING;
    上面介绍的这些参数比较好用,从名字就能看出来它们的用法与功能,GetSnackBar组件还提供了其它的参数,大家可以参考该方法的文档或者源代码。在使用这种方法
    显示SnackBar时,我们创建了自定义的GetSnackBar组件,因此我们称这种使用SnackBar的方法为"自定义样式"。

3. 示例代码

ElevatedButton(
  onPressed: () {
    ///这个snb默认透明色而且是在顶部显示
    Get.snackbar("title", "Message");
  },
  child: const Text("show SnackBar"),
),
ElevatedButton(
  onPressed: () {
    Get.showSnackbar(
        const GetSnackBar(
          title: "Title",
          message: "Message",
          ///需要加显示时间,默认一直显示
          duration: Duration(seconds: 2),
          backgroundColor: Colors.blue,
          ///控制snb与屏幕的边距
          margin:EdgeInsets.only(bottom: 80,left: 16,right: 16),
          ///不能像原生的snb一样控制形状,但是可以控制圆角,默认是矩形
          borderRadius: 16,
          ///会在snb顶部显示水平滚动条
          showProgressIndicator: true,
          ///这两个属性决定了snackBar的默认在底部显示
          // this.snackPosition = SnackPosition.BOTTOM,
          // this.snackStyle = SnackStyle.FLOATING,
        )
    );
  },
  child: const Text("show custom SNB"),
),

上面的示例代码演示了两种显示SnackBar的方法,我们在代码中添加了详细的注释,方便大家理解。此外,示例代码中把显示SnackBar的操作封装到了按钮的中,运行
程序时只需要点击按钮就可以显示SnackBar.我们在这里就不演示程序的运行结果了,建议大家自己动手去创建属性自己风格的SnackBar.

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 包中提供了两种显示SnackBar的方法,直接调用不同的方法就可以;
  • 使用snackbar()方法时显示的是默认样式的SnackBar;
  • 使用showSnackbar()方法时可以自定义各种样式的SnackBar;
  • 不管使用哪种方法显示SnackBar,都不需要使用BuildContext,这是本包最大的特点;
    看官们,与"使用get显示SnackBar"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:控制,显示,SnackBar,底部,使用,属性,方法,弹窗,页面
From: https://blog.csdn.net/talk_8/article/details/139666390

相关文章

  • 如何在浏览器书签栏设置2个书签实现一键到达网页顶部和底部
    本次设置浏览器为:Chrome浏览器(其他浏览器可自行测试)1,随便收藏一个网页到浏览器书签栏2,右键这个书签3,修改4,修改名称5,修改网址:javascript:(function(){window.scroll(0,0);})();如图,然后保存 6,右键这个书签,复制,右键,粘贴7,右键第二个书签,修改名称如下图javascript:(func......
  • Windows Server 2012 R2部署网站后IIS,只要访问网址应用程序池就自动停止,浏览器页面提
     解决方案:1.查看windows日志通过文件资源管理器查看:打开文件资源管理器,找到“我的电脑”。右键点击“管理”。在弹出的窗口中,点击“事件查看器”。在事件查看器中,点击“Windows日志”即可查看各种日志信息 2.找到错误信息......
  • PyQT5之多页面切换
    fromPyQt5.QtWidgetsimportQApplication,QWidget,QStackedLayout,QVBoxLayoutfromPyQt5.QtWidgetsimportQPushButton,QComboBox,QSizePolicyimportsysif__name__=='__main__':app=QApplication(sys.argv)my_widget=QWidget()my_w......
  • 龙哥量化:通达信寻找底部,出现粉色柱状线为多头信号,后势上涨概率较大
    如果您需要代写公式,请联系我。龙哥QQ:591438821龙哥微信:Long622889寻找底部使用说明:出现粉色柱状线为多头信号,后势上涨概率较大;出现青色柱状线信号为空头信号,后势下跌风险较大。黄线为构筑底部区域,当出现第一根粉色柱状线为最佳买入信号。 实价线:(C-LLV(L,60))/(HHV(......
  • uni-app上下级页面数据双向通信
    前情最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求。为什么要这么做?uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia,本地存储,事件通道eventChannel,EventBus等。这次的需求是在A面点击一个按钮跳转到B页面拾取一个数据选项......
  • linux内存管理(九)- 页面回收
    参考《深入理解linux内核架构》和这篇博客Linux中的内存回收[一]-知乎(zhihu.com)内核代码v6.8-rc2内存在计算机系统中经常是稀缺资源,当系统中内存不足甚至耗尽,为了让系统继续运行必须回收一部分内存。为了回收内存,我们必须首先知道系统中的内存都处于什么状态。内存中的页......
  • liunx下prometheus页面设置用户名密码登陆
    前言 前两天公司漏洞通报prometheus未设置鉴权,漏洞详情如下图所示。 操作前须知Prometheus于2.24版本(包括2.24)之后提供BasicAuth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheusapi的时候也需要加上用户密码1、安装依赖yum-yinstallepel-......
  • ubuntu在apt安装时出现的弹窗详解
    在一个全新安装的Ubuntu22.04LTS上,每次使用apt安装或更新软件包时,会出现一个Daemonsusingoutdatedlibraries弹窗,Whichserviceshouldberestarted?大概是下面这个样子: 这让我想起了windows上每次打开一个应用都会弹窗提示安全提醒,异曲同工啊。一脸懵的情况下,只能一......
  • 下载使用nginx发布html自定义页面
    在浏览器搜索nginx.org,然后点击download,接着点击 stableandmainline选择自己所使用系统对应的信息后点击(我用的是CentOS,所以需要点击RHELandderivatives)vim/etc/yum.repos.d/nginx.repo[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/ce......
  • winrar去广告弹窗
    1、复制以下注册码内容,保存为rarreg.key文件,将保存的rarreg.key文件复制到winrar安装目录注册码1RARregistrationdataAdminUnlimitedCompanyLicenseUID=1d7426b0b166c91c21ab641221225021abd0925f7c70456ecd71f724a7f5a00b0a0f7d19ee45c5e20951dae2857c2960fce6cb5ffde......