首页 > 其他分享 >如何创建图片按钮

如何创建图片按钮

时间:2024-08-24 22:23:31浏览次数:10  
标签:const 创建 IconButton Material3 风格 按钮 Icon filled 图片

文章目录


我们在上一章回中介绍了"如何修改NavigationBar组件的形状"相关的内容,本章回中将介绍IconButtion组件.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在前面章回中介绍Button时介绍过IconButon,它表示带有图标的Button,我们在本章回中的介绍的IconButton是指Material3中新添加的IconButton,它
和之前介绍的IconButton类似,只是在原IconButton的基础上提供了各种风格,接下来我们将详细介绍它们的使用方法。

2. 使用方法

Material3在原IconButton的基础上提供了三种风格的IconButton,接下来我们将分别介绍这三种风格的IconButton.

2.1 filled风格

该风格是一种填充风格,它会使用Material3中的PrimaryColor来填充,同时把Icon的颜色设置为白色。官方为了方便开发人员使用,在SDK中提供了专门的filled
方法来创建此风格的按钮:IconButton.filled().我们将在后面的小节中通过示例代码来演示如何使用该方法。

2.2 filledTonal风格

该风格是一种填充风格,它会使用Material3中的PrimaryColor来填充,不过颜色比filled风格要淡一些,同时把Icon的颜色设置为黑色。官方为了方便开发人员使
用,在SDK中提供了专门的filledTonal方法来创建此风格的按钮:IconButton.filledTonal().我们将在后面的小节中通过示例代码来演示如何使用该方法。该
风格和filled风格类似,该风格重在突出Icon,因为Icon是深色而背景是浅色的,而filled风格重在突出背景,因为背景深色的,而Icon是浅色的。

2.3 outlined风格

该风格是一种空心风格,它会在Icon外层包裹一个边框,边框的颜色和Icon的颜色相同,都是深黑色。官方为了方便开发人员使用,在SDK中提供了专门的outlined方
法来创建此风格的按钮:IconButton.outlined().我们将在后面的小节中通过示例代码来演示如何使用该方法。
注意:我们在这里介绍的颜色和风格都是指Material3的默认风格,如果大家修改了默认风格或者主题颜色,那么出现的颜色和风格会与这里介绍的不同。

3. 代码与效果

3.1 示例代码

介绍完各种风格的IconButton后,我们通过具体的代码来演示它们的使用方法。

Row(
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: [
    IconButton(onPressed: (){}, icon: const Icon(Icons.add)),
    IconButton.filled(onPressed: (){}, icon:const Icon(Icons.add)),
    IconButton.filledTonal(onPressed: (){}, icon: const Icon(Icons.add)),
    IconButton.outlined(onPressed: (){}, icon: const Icon(Icons.add)),
    IconButton.filled(onPressed: (){}, icon: const Icon(Icons.add),
      //控制图标的颜色
      color: Colors.redAccent,
      //控制Icon的背景颜色,形状
      style: IconButton.styleFrom(
      backgroundColor: Colors.red,
      //控制星形角的数量,默认是5
      shape:const StarBorder(),
      ),
    ),
    IconButton.filled(onPressed: (){}, icon: const Icon(Icons.face),
      color: Colors.blue ,
      style: IconButton.styleFrom(
      backgroundColor: Colors.yellow,
      shape:const StarBorder(points: 6),
      ),
    ),
  ],
),

上面的示例代码中演示了各种风格IconButon的用法,其实它们在本质上的用法相同,详细如下:

  • 通过icon属性来控制图标;
  • 通过onPressed属性来响应按钮的点击事件;
  • 通过style属性来修改按钮的形状和背景颜色;
    我们在代码中只演示了IconButton中常用的属性,还有其它的属性有待大家去发掘,比如Icon的对齐与边距等。此外,该代码需要在代码中激活useMaterial3属性,
    不然无法使用这些IconButton.

3.2 运行效果

我们把各种风格的IconButton放在了一行中,第一个是默认的风格,中间的是Material3中提供的三种风格,最后两个是自定义的风格,主要修改了IconButton的形
状和背景颜色。我们创建了一个红色的五角星和一个面带微笑的小太阳。下面是程序的运行效果图,

4. 内容总结

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

  • 在Material3中提供了三种不同风格的IconButton;
  • Material3为不同风格的IconButton提供了不同的方法,这些方法的方法完全相同;
  • IconButton的使用方法主要包含三个方面,详细的内容可以参考上面小节中的总结;
  • 普通的Button也有这三种风格,只不过它们是独立的按钮,而不是通过方法来实现;

看官们,与"Material3中的IconButton"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:const,创建,IconButton,Material3,风格,按钮,Icon,filled,图片
From: https://blog.csdn.net/talk_8/article/details/141500769

相关文章

  • 原神4.8版本重点培养和抽到角色数据表:修改了添加倒计时.隐藏了抽到角色数据表删除按钮
    <!DOCTYPEhtml><htmllang="zh-cn"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>原神4.8版本抽到角色和重点培养数据表<......
  • 【Python爬虫】批量爬取图片的简单案例
    @目录1.原理2.寻找批量的图片URL的储存地址2.1百度2.2搜狗2.3必应2.4总结3.处理存储图片URL的请求头4.完整demo1.原理网页中的图片有自己的URL,访问这些URL可以直接得到图片,譬如,访问下面这个URL,你就能得到一张图片:https://img-blog.csdnimg.cn/a3bad4725ba94301b7cba7dd820......
  • 2.ros2创建话题+发布消息(VScode环境搭建+编写)
    前言:这是在1.ROS2安装-创建节点的基础上进行改进的,由于ubuntu自带的nano和vim在编写的时候不是很方便,在这教大家怎么用VScode进行编写代码1.Vscode安装1.1下面是Vscode的deb网盘连接,你也可以去官网下载        官网连接:DownloadVisualStudioCode-Mac,Linux,......
  • Python爬虫案例二:获取虎牙主播图片(动态网站)
    爬虫流程:优先假设是JSON数据,抓包方式只能翻页JSON数据HTML数据1.异步数据(即先返回HTML,再返回目标的数据,只是触发了JSON请求),不在HTML中2.不能刷新网页,直接翻页测试链接:https://live.huya.com/源代码: importrequests,json,osclassTwo(object):def__ini......
  • 微信小程序根据本地缓存图片路径,生成缩略图的方法
    公共方法js文件/***生成缩略图*@paramcanvasIdcanvas容器的id*@paramfileUrl缓存在本地图片的路径*@paramthumbnailRange期待生成的缩略图尺寸范围,默认150,即宽或高不会超过150px*/functiongenerateThumbnail(canvasId,fileUrl,thumbnailRange=150){......
  • 图搜v1.1.3 - 图库几千张图片再也不怕了
    图搜是一款使用先进的自然语言处理技术的相册搜索助手,支持通过简单的描述来搜索相册中的图片,如“草丛中的猫”或“公园里的狗”。这款应用完全免费、无需内购,且完全离线使用,保证了用户数据的安全与私密性。它的高效索引系统确保即使是数千张照片也能在一秒钟内呈现搜索结果......
  • IDEA更换背景图片
     DEA如何更换背景图片在IDEA编辑器中点击【Help】–》【FindAction…】快捷键为【CTRL+SHILF+A】。   在打开的窗口内搜索【SetBackgroundImage】并点击找到的选项。 选择浏览一张要更改成背景的图片,这里可以对背景的透明度,样式进行修改。修改完后点击【OK】按......
  • 零基础国产GD32单片机编程入门(一)GD32单片机GPIO输出Keil5工程创建含源码
    文章目录一.概要二.GD32单片机GPIO内部结构图三.GD32单片机GPIO输入输出信号流向四.GD32单片机GPIO引脚的复用以及重映射五.从零开始创建一个GD32F103C8T6单片机GPIO输出驱动LED灯例程六.工程源代码下载七.小结一.概要GPIO(generalporposeintputoutput):单片机通......
  • dotnet 默认创建的 JsonContent 没有 Content Length 的内容头
    本文记录一个dotnet的设计问题,默认创建出来的JsonContent对象的Headers里,是没有Content-Length信息的如下面代码创建一个JsonContent对象usingSystem.Net.Http.Json;varfoo=newFoo();varjsonContent=JsonContent.Create(foo);classFoo{publicin......
  • 表达式用法,ref定义响应式,v-bind指令和图片轮播结合,class和style内联样式绑定,事件监听
    表达式用法当前时间,随机数,返回值,判断取值ref响应式使用ref赋值和普通赋值v-bind指令和图片轮播结合(v-bind可以省略成":")class和style内联样式绑定数据绑定一个常见需求是操作元素的class列表和它的内联样式两个class会用到这两个的样式,用v-bind对class里面的......