首页 > 其他分享 >IconButton用法

IconButton用法

时间:2024-05-28 23:31:25浏览次数:21  
标签:const IconButton 用法 Material3 风格 filled Icon

文章目录


我们在上一章回中介绍了"如何修改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的形
状和背景颜色。我们创建了一个红色的五角星和一个面带微笑的小太阳。下面是程序的运行效果图,请大家参考:018IconButton

4. 内容总结

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

  • 在Material3中提供了三种不同风格的IconButton;
  • Material3为不同风格的IconButton提供了不同的方法,这些方法的方法完全相同;
  • IconButton的使用方法主要包含三个方面,详细的内容可以参考上面小节中的总结;
  • 普通的Button也有这三种风格,只不过它们是独立的按钮,而不是通过方法来实现;
    看官们,与"Material3中的IconButton"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:const,IconButton,用法,Material3,风格,filled,Icon
From: https://blog.csdn.net/talk_8/article/details/139280397

相关文章

  • 【chisel】chisel中for (i <- 0 until N-2) {} 的用法,表示什么?
    在Chisel中,for(i<-0untilN-2){}是一个for循环的语法,它表示从0开始到N-2的整数(不包括N-2),并对每个整数i执行大括号{}内的代码块。这里的until是Scala语言的一个关键字,用于生成一个从起始值到结束值之前的所有整数的序列。在Chisel中,Scala的这个特性......
  • Vue3.4+版本中的 defineModel 宏的用法示例
    关于defineModel,Vue官方给出了较为详细的解释,具体请看文档说明下面是整理出的一个简易示例:子元素代码://Comp.vue<scriptsetup>constmsg=defineModel('msg',{type:String,default:''});constscore=defineModel('score',{type:Number,default:0})......
  • Java 8 中Stream用法
    Stream是Java8新增的接口,Stream可以认为是一个高级版本的Iterator。废话不多说直接上代码 packagecom.example.demo;importorg.junit.jupiter.api.Test;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.Arrays;importjava.util.L......
  • pgsq的学习记录②——PostgreSQL基础用法
    PostgreSQL基础用法创建一个数据库操作数据库创建表删除表表插入数据查询表多表联查创建一个数据库创建一个名为postgres的数据库createdbpostgres操作数据库创建表创建表weatherCREATETABLEweather(cityvarchar(80),temp_lo......
  • SCSS入门指南:基本语法与高效用法
    关于SCSS(SassyCSS)基本使用的文章概述:###1.SCSS简介*SCSS是一种CSS的扩展语言,它允许开发者使用更强大、更灵活的语法来编写样式表。*SCSS提供了变量、嵌套规则、混合宏等高级功能,使得CSS代码更加模块化和可维护。*SCSS最终被编译成标准的CSS文件,以供浏览器解析。###2.安......
  • tcl脚本语言之file的常见用法
    目录file命令描述:file命令举例:file命令描述:在Tcl脚本中,file命令用于处理文件系统操作。以下是所有file命令及其说明:fileatimename获取文件name的最后访问时间。fileattributesname?options?获取或设置文件name的属性。options可以是-readonly等。filechan......
  • Qt基础(一)QString 用法
    QString类保存16位Unicode值,提供了丰富的操作、查询和转换等函数。该类还进行了使用隐式共享、高效的内存分配策略等多方面的优化。1.字符串拼接使用+运算符//字符串拼接//+运算符staticvoidStringConnect1(){QStringstr1="Welcome";str1=str1+......
  • vector容器的用法
    vector容器的用法文章目录vector容器的用法1.vector是向量的意思,他是动态顺序表2.封装数组3.capacity和size的用法4.assign的用法5.resize的用法6.front和back的用法7.clear和erase用法8.vector中逆序输出的用法9.insert的用法1.vector是向量的意思,他是动态顺序表2......
  • stream( ).collect ( Collectors.groupingBy ( ) ) 的用法
    文章目录第一种解释1、基本用法2、指定值收集器3、多级分组4、常见应用场景和用处第二种解释1、基本语法2、示例3、更复杂的用法第一种解释Collectors.groupingBy是Java8引入的StreamAPI中的一个收集器(Collector),它用于将流(Stream)中的元素根据某个分类函数......
  • [AIGC] 你能简要解释一下CompletableFuture中thenCompose()方法的用法吗?
    thenCompose()是CompletableFuture的一个方法,用于链接两个CompletableFuture对象。这可以用来促成函数式风格的编程,而无需再额外处理Future对象的嵌套。thenCompose()方法接受一个函数作为参数,这个函数的输入是先前CompletableFuture的结果,它返回的是一个新的Co......