第四百九十九回

news2024/11/17 11:55:21

文章目录

  • 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"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pyqt颜色变换动画效果

pyqt颜色变换动画效果 QPropertyAnimation介绍颜色变换效果代码 QPropertyAnimation介绍 QPropertyAnimation 是 PyQt中的一个类,它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation,你可以平滑地改变一个对象的属性值,例如窗…

【企业必备】提升企业新质生产力,英智推出私有化大模型定制方案

市面上有很多性能不错的大模型,但大部分企业都不敢使用,担心模型训练和使用过程中出现数据泄露的风险。智能化升级是当今时代企业发展的必然趋势,在大模型发展迅猛的时代,借助AI能力的公司能够更快速提升自身的核心竞争力&#xf…

使用xtuner微调InternLM-Chat-7B

1. 安装xtuner #激活环境 source activate test_llm # 安装xtuner pip install xtuner#还有一些依赖项需要安装 future>0.6.0 cython lxml>3.1.0 cssselect mmengine 2. 创建一个ft-oasst1 数据集的工作路径,进入 mkdir ft-oasst1 cd ft-oasst1 3.XTune…

以Azure为例的SSO

由于文章的篇幅有限,无法将全部的代码贴上来,如想要看完整案例,请在公众号文章中留言(其他平台很少看…毕竟最近印度同事的UI组件库搞得我好烦) 1.关于SSO 单点登录又称之为SSO,全称为 Single Sign On ,一般在多个应用系统中&…

LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问

智谱AI 配置参考 https://python.langchain.com/v0.1/docs/integrations/chat/zhipuai/ZHIPUAI_API_KEY从https://open.bigmodel.cn/获取 from langchain_community.chat_models import ChatZhipuAI from langchain_core.messages import AIMessage, HumanMessage, SystemMes…

【Ubuntu 安装erlang】

apt-get 安装 apt-get install erlang或 源码安装 git clone https://github.com/erlang/otp.git cd otp git checkout maint-25 # current latest stable version ./configure make make install安装完后,验证是否成功 # 命令行输入 erl

漫谈AI时代的手机

以chatGPT 为代表的大语言的横空出世使人们感受到AI 时代的到来,大语言模型技术的最大特点是机器开始”懂人话“,”说人话“了。如同任何一个革命性工具的出现一样,它必将改变人类生活和工作。 在这里。我谈谈AI时代的手机。 语音通信的历史…

【C语言—猜数字小游戏】

一、游戏规则 电脑自动生成一个1~100范围内的随机数,由玩家猜测本轮生成的随机数是什么,系统根据玩家猜测数据的⼤⼩给出猜⼤了或猜⼩了的反馈,直到玩家猜对,游戏结束。 如何生成随机数:【C语言】/*如何生成随机值*/-C…

es6语法总结

【1】语法 (1)声明变量(let-var-const) 变量提升: 是JavaScript引擎在代码执行前将变量的声明部分提升到作用域顶部的行为。尽管变量的声明被提升了,变量的赋值(即初始化)仍然保留在原来的位置。因此&…

C++:关于圆形鱼眼半全景图转为等距圆柱投影图

C:空间坐标映射到球面坐标/全景图_如何将球体坐标映射到球面uv-CSDN博客 C:关于360全景图像和立方体6面全景图像的相互转换_彩色全景拆解正方体6个面-CSDN博客 之前记录了立方体和360全景之间的转换,这次记录下鱼眼图与360全景图之间的转换…

Doris【部署 01】Linux部署MPP数据库Doris稳定版(下载+安装+连接+测试)

本次安装测试的为稳定版2.0.8官方文档 https://doris.apache.org/zh-CN/docs/2.0/get-starting/quick-start 这个简短的指南将告诉你如何下载 Doris 最新稳定版本,在单节点上安装并运行它,包括创建数据库、数据表、导入数据及查询等。 Linux部署稳定版Do…

【Python】PYQT5详细介绍

本专栏内容为:Python学习专栏 通过本专栏的深入学习,你可以了解并掌握Python。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:Python 🚚代码仓库:小小unicorn的代码仓库🚚 &#x1f3…

Array.map解析

map方法会创建一个新数组。该方法会循环数组中的每个值,如果仅仅是想循环数组不需要返回值使用数组的forEach方法就可以。原数组中的每个元素都调用一次提供的函数后的返回值组成。Array.map 它接收一个函数 这个函数可以接收三个参数 数组的每个值item 这个值的索引…

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门 1、 for i in range(3):Dev.step(3)for j in range(3):Dev.turnLeft()Dev.step(-2)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(4)Dev.turnRight()Dev.step(2)for i in range(4):Dev.step(2)D…

ardupilot开发 --- opencv 篇

0. 一些概念 官网:https://opencv.org/ 1. 卸载 sudo apt-get --purge remove libopencv sudo apt-get --purge remove libopencv-dev sudo apt-get --purge remove libopencv* sudo apt-get --purge remove opencv sudo apt-get --purge remove *opencv* sudo a…

视频剪辑达人分享:一键批量置入随机封面,创意无限

在数字化媒体飞速发展的今天,视频内容已经成为我们表达创意、分享故事、传递信息的主要方式之一。而在视频制作过程中,封面作为视频的“脸面”,往往决定了观众是否愿意点击观看。因此,为视频选择合适的封面变得至关重要。 在大量…

3D数字化解决方案助力文博行业转型,让文物“活”起来!

博物馆是保护和传承人类文明的重要殿堂,是连接过去、现在、未来的桥梁,为了进一步加强文物及藏品保护,不断提高博物馆服务和科普宣传水平,博物馆数字化转型已是当下发展趋势。 在科技的“加持”下,不少博物馆凭借强大的…

LeetCode-258. 各位相加【数学 数论 模拟】

LeetCode-258. 各位相加【数学 数论 模拟】 题目描述:解题思路一:循环解题思路二:进阶 O(1)解题思路三: 题目描述: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个…

Linux下VMamba 环境复现+环境测试

# 1. 创建自己的虚拟环境 conda create -n VMamba python3.10.13 conda activate VMamba # 2. cuda-11.8 conda install cudatoolkit11.8 -c nvidia # 3. torch torchvision torchaudio 与 官网命令一致 pip install torch2.1.1 torchvision0.16.1 torchaudio2.1.1 --index-url…

OpenGL入门第四步:摄像机视角变换与交互

OpenGL入门第一步:创建窗口、重写虚函数-CSDN博客 OpenGL入门第二步:颜色、纹理设置(解析)-CSDN博客 OpenGL入门第三步:矩阵变换、坐标系统-CSDN博客 目录 函数解析 具体代码 函数解析 相机视角变换需要与鼠标键盘进行交互,需要重写鼠标和键盘响应函数。 初始化 …