第四百九十八回

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 固定样式
    • 2.2 自定义样式
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"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"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/615087.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python自动化办公的代码

以下是一个简单的Python自动化办公代码示例,用于实现一些基本的自动化任务,例如打开文件、读取数据、写入数据和保存文件等。 python import os # 打开文件 def open_file(filename): try: file open(filename, r) data file.read() file.close() ret…

如果你的Google ads账号被暂停了怎么办?

Google Ads账号暂停可能会导致您的企业收入损失。但实际上,除了一些特殊情况外,Google Ads帐户暂停几乎不是永久性的。如果您的帐户已被暂停,有多种方法可以恢复该帐户。 废话不多说,下面为大家分享! 一、谷歌广告帐户…

用于视频识别的快慢网络

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读:用于视频识别的快慢网络1、文献摘要2、提出方法2.1、SlowFast模型2.2、SlowFast 提出思想 3、相关方法3.1、时空间卷积3.2、基于光…

安卓开发--按键跳转页面

安卓开发--按键跳转页面 前言1. 按键页面跳转1.1 新建布局文件1.2 衔接布局文件,新建Java class类文件1.3 衔接布局文件,修改AndroidManifest.xml文件1.4 调用布局文件1.5 最终效果 前面已经介绍了一个空白按键工程的建立以及响应方式,可以参…

机器学习算法应用——神经网络回归任务、神经网络分类任务

神经网络回归任务(4-3) 神经网络回归任务,通常指的是使用神经网络模型进行回归分析。回归分析是一种统计学方法,用于研究一个或多个自变量(预测变量)与一个因变量(响应变量)之间的关…

python实现动态时钟功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 一.前言 时钟,也被称为钟表,是一种用于测量、记录时间的仪器。时钟通常由时针、分针、秒针等计时仪器组成,是现代社会不可或缺的一种计时工具。它的发明和使用极大地改变了人类的生活方式和时间观念。 时钟的类型有很多,…

汇昌联信科技:做拼多多网店要押金吗?

做拼多多网店要押金吗?”这个问题,其实与拼多多的平台规则有关。在开店之前,商家需要详细了解平台的各项规定和费用构成,这样才能做好充足的准备。 一、明确回答问题 做拼多多网店,不需要支付押金。拼多多的入驻门槛相对较低&…

Threejs Shader动态修改Merge合并几何体中单个Mesh的颜色

目录 Merge合并 现象 思路 实现 为单个geometry添加映射 通过id检索Merge后的Geometry映射属性,获取顶点坐标 onBeforeCompile修改编译前材质的着色代码 编译前材质的顶点着色代码 编译前材质的片元着色代码 着色器代码 注意 效果 Merge合并 mergeBuf…

Vue路由拆分

1.在src下建立router&#xff0c;在router中建立文件index 2.将main.js中部分内容复制 App <template> <div><a href"#/friend">朋友</a><br><a href"#/info">信息</a><br><a href"#/music&quo…

数据结构十三:八大排序算法

排序算法&#xff08;sorting algorithm&#xff09;是用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定&am…

看马斯克与OpenAI的爱恨情仇,AGI之路会走向何方?

揭秘马斯克与OpenAI的决裂&#xff1a;AI的未来将何去何从&#xff1f; ©作者|Steven 来源|神州问学 引言 2024 年 3 月 1 日&#xff0c;时任OpenAI联合创始人的Elon Musk(下文简称&#xff1a;马斯克)将现任 CEO、创始人Sam Altman(下文简称&#xff1a;阿尔特曼)告上…

深度学习设计模式之单例模式

一、单例模式简介 一个类只能有一个实例&#xff0c;提供该实例的全局访问点&#xff1b; 二、单例模式实现步骤 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例&#xff0c;只能通过公有静态函数返…

工业机器人应用实践之玻璃涂胶(篇一)

工业机器人 工业机器人&#xff0c;即面向工业领域的机器人。工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置&#xff0c;具有一定的自动性&#xff0c;可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业机器人被广泛应用于电子、物流、化工等…

使用OpenCV实现图像平移

使用OpenCV实现图像平移 程序流程效果代码 程序流程 读取图像并获取其高度、宽度和通道数。定义平移量tx和ty&#xff0c;并创建平移矩阵M。使用cv2.warpAffine函数对图像进行仿射变换&#xff08;平移&#xff09;&#xff0c;得到平移后的图像。显示平移后的图像。等待用户按…

HTML【常用的标签】、CSS【选择器】

day45 HTML 继day44&#xff0c;w3cschool 常用的标签 k) 表格 表格由 table 标签来定义。每个表格均有若干行&#xff08;由 tr 标签定义&#xff09;&#xff0c;每行被分割为若干单元格&#xff08;由 标签定义&#xff09;。字母 td指表格数据&#xff08;table data&…

VSCode:设置顶部文件标签页滚动条的宽度

使用VSCode打开多个文件后&#xff0c;顶部的文件标签可以通过滚动条进行滚动&#xff0c;但是缺点是该滚动条太窄了&#xff0c;不好选择。 可以通过如下方法修改改滚动条的宽度&#xff1a; 1.点击设置 2.选择工作台->编辑管理->Title Scrollbar Sizing->Large 3.可…

QJ71E71-100 三菱Q系列以太网通信模块

QJ71E71-100 三菱Q系列以太网通信模块 QJ71E71-100以太网模块是PLC侧连接Q系列PLC与本站系统的接口模块&#xff0c;如个人计算机和工作站&#xff0c;也是通过以太网使用TCP/IP或UDP/IP通讯协议在 PLC 之间的接口模块。QJ71E71-100外部连接,QJ71E71-100参数规格,QJ71E71-100用…

表面的相似,本质的不同

韩信与韩王信&#xff0c;两个韩信的结局都是被刘邦所杀&#xff0c;似乎结局类似。但是&#xff0c;略加分析&#xff0c;就会发现其中存在本质的区别。 韩信属于必杀。他的王位是要来的&#xff0c;有居功自傲的本意&#xff0c;功高震主而且毫不避讳。而且年轻&#xff0c;…

linux上使用mariadb安装mysql环境

之前都是手动安装mysql数据库&#xff0c;现在尝试下在线安装&#xff0c;为后面的项目部署做准备&#xff0c;突然发现使用mariadb安装mysql环境真的超级简单。 1.使用mariadb安装mysql 安装服务端&#xff1a; yum install mariadb-server -y 安装客户端&#xff1a; yum i…

C++(week3):C语言文件操作

文章目录 (十二) 文件1.流(1)流模型(2)程序员视角的文件(3)缓冲区类型(4)标准流(5)二进制文件 与 文本文件(6)文件流的接口(API) 2.打开/关闭文件(1)fopen(2)fclose(3)示例代码 3.读/写文件(1)fgetc / fputc&#xff1a;一个字符一个字符地读写(2)fgets / fputs&#xff1a;一行…