Flutter 中的 FloatingActionButton 小部件:全面指南

Flutter 中的 FloatingActionButton 小部件:全面指南

在 Flutter 中,FloatingActionButton 是一个圆形的浮动操作按钮,通常用于在移动应用中提供一个快速的、突出的操作入口。它不仅外观醒目,而且可以提升用户体验,因为它允许用户轻松地触发应用中的主要或常用的操作。

基础用法

FloatingActionButton 最基本的用法是提供一个点击事件的回调:

FloatingActionButton(onPressed: () {// 当按钮被按下时执行的操作},child: Icon(Icons.add),
)

这将创建一个带有加号图标的浮动操作按钮。

自定义样式

FloatingActionButton 提供了多种属性来定制按钮的外观:

颜色和高亮颜色

  • backgroundColor: 设置按钮的背景颜色。
  • foregroundColor: 设置按钮的前景色,即图标的颜色。
  • highlightElevation: 设置按下时的阴影高度。
FloatingActionButton(backgroundColor: Colors.blue,foregroundColor: Colors.white,onPressed: () {/* ... */},child: Icon(Icons.add),
)

大小

  • mini: 设置为 true 可以创建一个更小的浮动操作按钮。
FloatingActionButton.mini(onPressed: () {/* ... */},child: Icon(Icons.add),
)

形状和边框

  • shape: 设置按钮的形状,通常是一个圆形。
  • borderRadius: 设置按钮的边框半径。
FloatingActionButton(shape: CircleBorder(side: BorderSide(color: Colors.black, width: 1.0)),onPressed: () {/* ... */},child: Icon(Icons.add),
)

英雄 动画

FloatingActionButton 支持 hero 动画,这意味着你可以在页面间传递一个相同的按钮,以实现平滑的过渡效果:

Hero(tag: 'fab', // 一个唯一的标识符child: FloatingActionButton(onPressed: () {/* ... */},child: Icon(Icons.add),),
)

与 Scaffold 结合使用

FloatingActionButton 常与 Scaffold 小部件结合使用,后者提供了一个便捷的 floatingActionButton 属性来添加浮动操作按钮:

Scaffold(appBar: AppBar(title: Text('FloatingActionButton Example'),),body: Container(// ... 应用的主体内容),floatingActionButton: FloatingActionButton(onPressed: () {// 按钮的点击事件},child: Icon(Icons.add),),
)

自定义浮动按钮的位置

通过 ScaffoldfloatingActionButtonLocation 属性,你可以自定义浮动按钮的位置:

Scaffold(floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,floatingActionButton: FloatingActionButton(onPressed: () {// 按钮的点击事件},child: Icon(Icons.add),),// ... 其他 Scaffold 属性
)

实现下拉刷新

虽然 FloatingActionButton 本身不直接支持下拉刷新,但你可以结合 ScaffoldappBar 属性实现下拉刷新:

Scaffold(appBar: AppBar(title: Text('Refresh Example'),bottom: TabBar(// ... 标签页),),body: RefreshIndicator(onRefresh: _handleRefresh, // 下拉刷新的回调child: TabBarView(// ... 标签页视图),),floatingActionButton: FloatingActionButton(onPressed: () {// 按钮的点击事件},child: Icon(Icons.add),),
)

结语

FloatingActionButton 是 Flutter 中一个功能丰富且外观吸引的小部件,它不仅可以提升应用的交互性,还能增强用户的操作体验。掌握 FloatingActionButton 的使用,可以帮助你创建出既美观又实用的用户界面。

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

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

相关文章

HTML静态网页成品作业(HTML+CSS)——动漫哆啦A梦网页(3个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有3个页面。 二、作品演示 三、代…

打印kafka最近的消息

使用 kafka-run-class 指令,获取topic的最小offset和最大offset #查看各个分区的最小offset(这个意思就是,这个offset之前的消息已经被清除了,现在consumer是从这个offset之后开始消费): ./kafka-run-class.sh kafka.tools.GetOffsetShell …

Mongo关联查询两张表中分别满足某些条件的记录

如果是在mysql里面,这个查起来就很方便,但是,在mongo里面的话,查询起来就没这么方便了。 如果使用付费版的Studio 3T工具的话,也可以像使用mysql一样查询mongo数据,但是免费版不支持sql的用法,只…

rust类型和变量(二)

基础知识 Rust中的变量基础知识 1.在Rust中,使用Iet关键字来声明变量 2.Rust支持类型推导,但你也可以显式指定变量的类型: Ietx:i325;/显式指定x的类型为i32 3.变量名蛇形命名法(Snake Case),i 而枚举和结构体命名使用帕斯卡命名法(Pasca|Ca…

【联邦学习——手动搭建简易联邦学习】

1. 目的 用于记录自己在手写联邦学习相关实验时碰到的一些问题,方便自己进行回顾。 2. 代码 2.1 本地模型计算梯度更新 # 比较训练前后的参数变化 def compare_weights(new_model, old_model):weight_updates {}for layer_name, params in new_model.state_dic…

Python---Pandas万字总结(1)

Pandas基础-1 Pandas 是 一个强大的分析结构化数据的工具集。Pandas 以 NumPy 为基础(实现数据存储和运算),提供了专门用于数据分析的类型、方法和函数,对数据分析和数据挖掘提供了很好的支持;同时 pandas 还可以跟数…

kubeadm 在vubuntu22.04.4 server 上安装kubernetes 1.28.9

一、基础安装(所有节点执行)---------------------------------------- 时间同步 关闭防火墙 sudo ufw disable sudo ufw status关闭交换内存 临时关闭 sudo swapoff -a free -m永久关闭 sudo vim /etc/fstab 注释掉交换内存 转发 IPv4 并让 iptab…

2、MySQL总结

一、基础部分 (一)、概念 关系型数据库 (二)、SQL编写 CRUD(查询、插入、更新、删除) 左右连接、内连接、子查询 (三)、存储过程、存储函数 存储过程和函数(一&am…

云贝教育 |【好课上新】ITSS服务工程师与服务经理认证培训

课程前言 ITSS是中国电子技术标准化研究院推出的,包含“IT 服务工程师”和“IT 服务经理”的系列培训。有效满足GB/T 28827.1 的符合性评估要求和ITSS服务资质升级要求。 IT 服务工程师”结合 IT服务从业人员能力规范和要求,从服务技术、服务技巧和服务…

【Linux】调试器-gdb使用

大家好,我是苏貝,本篇博客带大家了解Linux的编译器-gcc/g,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 背景(A) 看大小(B) 查看ELF格式的文件 2.使用(A) 进入gdb(B) quit/q&#xff…

【码农日常】将mp4转换为逐帧图片

项目场景: 拍摄了一段视频记录设备工作的状态和测量仪器的实时数据。由于测量仪器岁数比较大,不够智能,遂打算将视频转换为逐帧图片进行分析。 网上没找到现成工具,借鉴网上大神的操作方式打算用python写一个工具。 问题描述 用…

Mybatis中collection和association的区别

在MyBatis中,如果我们想对一对一或者一对多的多表进行查询,该如何处理呢? MyBatis提供了下面两个标签来处理一对一、多对一、一对多的映射关系: association: 处理一对一、多对一 collection: 处理一对多 一对一 每个人都有身份…

一、VIsual Studio下的Qt环境配置(Visual Studio 2022 + Qt 5.12.10)

一、下载编译器Visual Studio2022和Qt 5.12.10 Visual Studio 2022 社区版就够学习使用了 Qt5.12.10 安装教程网上搜,一大堆 也很简单,配置直接选默认,路径留意一下即可 二、配置环境 Ⅰ,配置Qt环境变量 系统变量下的Path&a…

【DevOps】深入解析 Docker日志分析和服务故障排除技巧

在今天的云计算和微服务架构中,Docker凭借其轻量级和高效的容器化技术,已成为软件部署不可或缺的一部分。然而,随着应用复杂性的增加,有效的日志管理和故障排除能力成为了开发者和运维人员必须掌握的核心技能。本文将带你深入探索…

AI办公自动化-用kimi自动清理删除重复文件

在kimichat中输入提示词: 你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下: 1、打开文件夹D:\downloads; 2、哈希值比较比较里面所有的文件,如果文件相同,那么移动多余…

鲲鹏服务器ARM硬件的高字节忽略(Top Byte Ignore,TBI)

HWASan1 和HWASanIO2 等借助ARM的高字节忽略(Top Byte Ignore,TBI)的硬件特性,使用内存标记检测内存错误。TBI是指64位ARM机器中,程序64位地址中最高的字节被硬件忽略,实际的地址空间只有56位。我们在鲲鹏服…

群晖NAS本地搭建Bitwarden密码管理服务并实现远程同步密码托管

文章目录 1. 拉取Bitwarden镜像2. 运行Bitwarden镜像3. 本地访问4. 群晖安装Cpolar5. 配置公网地址6. 公网访问Bitwarden7. 固定公网地址8. 浏览器密码托管设置 Bitwarden是一个密码管理器应用程序,适用于在多个设备和浏览器之间同步密码。自建密码管理软件bitwarde…

华为配置智能无损网络综合

配置智能无损网络综合示例 适用产品和版本 安装了P系列单板的CE16800、CE6866、CE6866K、CE8851-32CQ8DQ-P、CE8851K系列交换机V300R020C00或更高版本。 安装了SAN系列单板的CE16800、CE6860-SAN、CE8850-SAN系列交换机V300R020C10或更高版本。 CE6860-HAM、CE8850-HAM系列交换…

初识FlaskMySQL实现前后端通信 全栈开发之路——后端篇(1)

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…

02-WPF_基础(二)

3、控件学习 控件学习 布局控件: panel、Grid 内容空间:Context 之恶能容纳一个控件或布局控件 代表提内容控件:内容控件可以设置标题 Header 父类:HeaderContextControl。 条目控件:可以显示一列数据&#xf…