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

如何创建带图片的按钮

时间:2024-07-21 22:29:10浏览次数:11  
标签: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/140590278

相关文章

  • 【网页前端设计HTML】图片
    一、图片的简介任何网页都少不了图片,一个图文并茂的页面,可以使得用户体验更好。如果想让网站获得更多的流量,也需要从“图文并茂”这个角度挖掘一下。在HTML中,我们可以使用img标签来显示一张图片。对于img标签,只需要掌握它的3个属性:src、alt和title。<imgsrc=""alt=""ti......
  • Milvus 实践(1) --- 文本-图片交互式search搭建及原理
    目录背景训练素材downloadtorchvision简介python代码执行结果模型训练模型训练参数训练模型注意事项模型加载录入vectorDB使用预加载的模型参数对图片进行编码录入milvus查询效果查询编码milvussearch模型适用列表总结背景应该说Milvus在2.4以上版......
  • 字符串的创建辨析
    字符串的创建辨析Strings="1"*使用引号创建字符串会在常量池中寻找有则直接返回没有则创建Strings=newString("1");*使用new创建如果常量池没有"1"则在常量池中创建"1"再在堆中创建String并返回地址给引用*使用s.intern()如果常量池中没有与字符串相同的字符串(判......
  • 初学者简单了解爬虫的基本认识和操作(详细参考图片)
    爬虫定义:爬虫(WebCrawler或Spider)是一种自动访问互联网上网页的程序,其主要目的是索引网页内容,以便搜索引擎能够快速检索到相关信息。以下是爬虫的一些关键特性和功能:自动化访问:爬虫能够自动访问网页,无需人工干预。索引内容:爬虫会提取网页中的文本内容、图片、链接等信......
  • 爬虫爬取网页的信息与图片的方法
    爬虫爬取网页的信息与图片的方法爬取人物信息importrequestshead={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/126.0.0.0Safari/537.36Edg/126.0.0.0"}#这是get请求带参数的模式defget......
  • TooBox也盒-图片批量裁剪器
    TooBox也盒v0.2.0版本上线,支持图片批量裁剪。在进行Lora训练时,通常需要这三种尺寸,但有时我们的素材并不符合这些规格,这时就需要进行裁剪。首先启动TooBox也盒,选择“图片裁剪”功能,然后选择包含待裁剪图片的文件夹。选定文件夹后,图片显示区域将展示该文件夹中的所有图片。......
  • Kaptcha - Java图片验证码
    1.什么是Kaptcha验证码?Kaptcha是一个强大的开源Java验证码生成库,由Google开发。它能够生成高度可配置的图片验证码,主要用于防止自动化程序滥用web应用,提高应用的安全性。2.Kaptcha的主要特性Kaptcha具有以下几个主要特性:高度可配置:可以自定义字体、颜色、大小......
  • NumPy 广播数组是否会在二进制运算期间创建?
    我有两个numpy.ndarray具有不同形状的实例。如果我添加这两个数组,它们之间将发生广播:importnumpyasnpx=np.array([1,2,3])y=np.array([[2,3,5],[7,11,13]])print(x+y)#[[358]#[81316]]广播数组会被创建吗?也就......
  • 使用idea创建Javaweb项目(步骤)
    第一步创建Javaweb项目File>New>Project第二步  勾选WebApplication >Next然后就是进行起名,完成。完成创建项目,检查是否文件齐全配置tomcat配置好,就能启动tomcat,显示首页导入jar包。导入进项目,然后编写类......
  • VBA 实现从 URL 下载图片并重命名保存
    使用VBA在Excel中实现图片自动下载1.准备1.1MSXML2.XMLHTTPXmlHttp提供客户端同http服务器通讯的协议1.2ADODB.StreamADODB.Stream属于ADODB组件中的一个对象,它是一种数据流对象,用于处理二进制数据流2.MSXML2.XMLHTTP介绍参考:https://www.jianshu.com/......