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

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

在 Flutter 中,MaterialButton 是 Material Design 风格中的一种按钮,它提供了一种简单而直观的方式来创建符合 Material Design 指南的按钮。MaterialButton 支持多种形状、颜色和大小,并且可以响应用户的点击操作。

基础用法

MaterialButton 最基本的用法是包裹一个文本标签,并提供一个点击事件的回调:

MaterialButton(onPressed: () {// 当按钮被按下时执行的操作},child: Text('Click Me'),
)

自定义样式

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

颜色和文本颜色

  • color: 设置按钮的背景颜色。
  • textColor: 设置按钮上文本的颜色。
MaterialButton(color: Colors.blue,textColor: Colors.white,onPressed: () {/* ... */},child: Text('Colored Button'),
)

形状

  • shape: 设置按钮的形状,可以是圆形、矩形或其他自定义形状。
MaterialButton(shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),onPressed: () {/* ... */},child: Text('Shaped Button'),
)

大小

MaterialButton 的大小是根据其包裹的 child 小部件的大小自动决定的,但你可以通过 minWidthheightpadding 属性来进一步定制:

MaterialButton(minWidth: 100.0,height: 40.0,padding: EdgeInsets.all(8.0),onPressed: () {/* ... */},child: Text('Sized Button'),
)

点击反馈

  • onPressed: 用户点击按钮时执行的操作。
  • onLongPress: 用户长按按钮时执行的操作。
MaterialButton(onPressed: () {/* ... */},onLongPress: () {// 用户长按按钮时的操作},child: Text('Press or Long Press Me'),
)

禁用状态

  • disabledColor: 设置按钮禁用时的颜色。
  • onDisabled: 按钮禁用时点击事件的回调。
MaterialButton(disabledColor: Colors.grey,onPressed: () {/* ... */},child: Text('Disabled Button'),
)

实例:带图标的按钮

MaterialButton 可以包含图标,以提供更直观的交互提示:

MaterialButton(onPressed: () {/* ... */},child: Icon(Icons.add),
)

实例:凸起按钮

在 Material Design 中,凸起按钮(Raised Buttons)是最常见的按钮样式,它们在按下时会有一个轻微的阴影效果:

MaterialButton(elevation: 8.0, // 设置阴影的高度onPressed: () {/* ... */},child: Text('Raised Button'),
)

实例:平坦按钮

平坦按钮(Flat Buttons)没有阴影,通常用于较少重要的操作或设置在其他组件上:

MaterialButton(color: Colors.blue,textColor: Colors.white,shape: StadiumBorder(), // 使用体育场形状的边框onPressed: () {/* ... */},child: Text('Flat Button'),
)

实例:突出按钮

突出按钮(Outlined Buttons)带有边框但没有背景颜色,它们常用于需要强调的负操作,如取消或删除:

MaterialButton(shape: CircleBorder(),onPressed: () {/* ... */},child: Text('Outlined Button'),textColor: Colors.black,borderSide: BorderSide(color: Colors.black,width: 1.0,),
)

结语

MaterialButton 是 Flutter 中一个功能丰富且高度可定制的小部件,它允许你快速创建出符合 Material Design 指南的按钮。掌握 MaterialButton 的使用,可以帮助你创建出既美观又交互性强的用户界面。

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

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

相关文章

SSH 免密登录,设置好仍然需要密码登录解决方法

说明: ssh秘钥登录设置好了,但是登录的时候依然需要提供密码 查看系统安全日志,定位问题 sudo cat /var/log/auth.log或者 sudo cat /var/log/secure找到下面的信息 Authentication refused: bad ownership or modes...(网上的…

重大升级 | OpenSCA SaaS全面接入供应链安全情报!

结合社区用户反馈及研发小伙伴的积极探索, OpenSCA 项目组再次发力,SaaS版本重大升级啦! 用户的需求是OpenSCA前进的动力,欢迎更多感兴趣的朋友们积极试用和反馈~ 更 新 内 容 1.全面接入云脉XSBOM供应链安全情报 2.强大的资产…

Nginx-01-Nginx 是什么? 能做什么?

nginx 系列 Nginx-01-聊一聊 nginx Nginx-01-Nginx 是什么 Nginx-02-为什么使用 Nginx Nginx-02-Nginx Ubuntu 安装 windows10 WSL ubuntu 安装 nginx 实战笔记 Nginx-02-基本使用 Nginx-03-Nginx 项目架构 Nginx-04-Docker Nginx Nginx-05-nginx 反向代理是什么&…

【AtCoder Beginner Contest 353】C - Sigma Problem 题解

【AtCoder Beginner Contest 353】C - Sigma Problem 题解 文章目录 【AtCoder Beginner Contest 353】C - Sigma Problem 题解题目大意大致思路代码 题目大意 给出一个函数 f ( x , y ) ( x , y ) f(x,y) (x,y) f(x,y)(x,y),求: ∑ i 1 N − 1 ∑ j…

嫦娥六号揭秘真相:阿波罗登月是真是假?一文终结所有疑问!

近期,嫦娥六号的成功发射如同璀璨的星辰,再次将人们的视线聚焦于浩瀚的宇宙,与此同时,网络上关于美国阿波罗登月是否造假的争议也如潮水般涌现。一些声音宣称,嫦娥六号的发射为揭示美国阿波罗登月任务的真实性提供了关…

宝塔面板各种疑难杂症处理命令教程

下载地址:宝塔面板各种疑难杂症处理命令教程 这份宝塔面板各种疑难杂症处理命令教程,可以解决市面上遇到的各种难题,建议有技术能行的下载使用,小白也可以下载来学习可以帮助你解决宝塔面板遇到的各种难题

对中介者模式的理解

目录 一、场景1、题目 【[来源](https://kamacoder.com/problempage.php?pid1094)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用中介者设计模式1 代码2 问题 三、中介者设计模式1 代码2 更好的例子 四、个人思考 一、场景 设计模式不是银弹&am…

宝塔纯净版 7.6.0版本无需手机登录 [稳定版本/推荐]

下载地址:宝塔纯净版 7.6.0版本无需手机登录.zip 宝塔纯净版介绍 无需手机登录:不再有手机登录提示,或按照提示输入任意手机号密码即可模拟绑定; 安全:剥离了所有与宝塔官方的通信、上报、下发;并且不与…

有哪些网络兼职适合大学生参与?揭秘几个简单又实用的兼职机会

有哪些网络兼职适合大学生参与?揭秘几个简单又实用的兼职机会 对于大学生而言,除了专注于学业,利用空余时间参与一些网络兼职,不仅能锻炼个人技能,还能为未来的职业生涯积累宝贵的经验。想象一下,步入社会…

Linux-磁盘管理类实训

一、Linux分区和磁盘操作命令 (1)将系统内所有的分区(文件系统)列出来) (2)将系统中所有特殊文件格式及名称都列出来 (3)将/bin下面的可以用的磁盘容量以易读的容量格式…

房屋出租管理系统需求分析及功能介绍

房屋租赁管理系统适用于写字楼、办公楼、厂区、园区、商城、公寓等商办商业不动产的租赁管理及租赁营销;提供资产管理,合同管理,租赁管理, 物业管理,门禁管理等一体化的运营管理平台,提高项目方管理运营效率…

OpenAI之Whisper实时语音分析转文字

1.安装ffmpeg 2.安装python3.11 3.安装whisper pip install whisper conda环境安装whisper conda install whisper 命令行安装openai-whisper pip install openai-whisper 设置环境变量 4.分析语音并输出(默认使用GPU计算,如果没有安装CUDA,请使用CPU) whisper …

Serverless-架构的兴起

文章目录 前言一、物理机器时代二、虚拟机时代虚拟化技术的发展催生了云计算服务的不同模式 三、容器时代四、 Serverless核心特点:应用场景:挑战: 前言 通过服务器架构的发展了解 Serverless-架构的兴起 一、物理机器时代 物理服务器&…

js-vue页面路由跳转(存入缓存)-多个复杂循环跳转返回

1,应用场景 A页面跳转到对应的查看器B(可返回A),B可跳转到C(可返回B),C可跳转到B(可返回C),循环跳转正确返回对应页面。 2,解决方法 利用sessionStorage缓存跳转前的路径。每一次进行跳转时进行缓存当前的路径。在进行需要返回时…

吃透前端文件上传与文件相关操作

最近在学文件上传的操作,所以想把学习到东西写成一文章 这片文章是我以小白视角 慢慢学习并熟悉前端文件相关操作的流程总结出来的 前端文件上传 我首先想到是 <input type"file">选择文件</input>如果我们想限制上传文件的格式,大小或进行裁剪分片上传…

2024审计师报名流程图解❗报名时间汇总❗

2024年审计专业技术资格考试报名正在进行中 &#x1f50d;审计报名流程 一、考生注册 打开浏览器登录中国人事考试网进行【考生注册】&#xff0c;按照提示认真填写个人注册信息&#xff0c;确保个人信息真实、完整、准确&#xff0c;并上传已处理好的照片。 二、考生报名 1⃣考…

[C++核心编程-09]----C++类和对象之继承

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

C++进阶:哈希(1)

目录 1. 简介unordered_set与unordered_map2. 哈希表&#xff08;散列&#xff09;2.1 哈希表的引入2.2 闭散列的除留余数法2.2.1 前置知识补充与描述2.2.2 闭散列哈希表实现 2.3 开散列的哈希桶2.3.1 结构描述2.3.2 开散列哈希桶实现2.3.3 哈希桶的迭代器与key值处理仿函数 3.…

7B2 PRO主题5.4.2 免授权开心版源码 | WordPress主题

简介&#xff1a; B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在WordPress上传安装即可 点击下载

信息化总体架构方法_1.信息化的一般概念

通常&#xff0c;信息化包含了七个主要平台&#xff1a;知识管理平台、日常办公平台、信息集成平台、信息发布平台、协同工作平台、公文流转平台和企业通信平台。 1.信息化的一般概念 1&#xff09;信息化 “信息化是指培育、发展以智能化工具为代表的新的生产力并使之造福于…