第一百七十回 Material3中的IconButton

news2024/11/17 17:24:48

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 filled风格
    • 2.2 filledTonal风格
    • 2.3 outlined风格
  • 3. 代码与效果
    • 3.1 示例代码
    • 3.2 运行效果
  • 4. 内容总结

我们在上一章回中介绍了"如何修改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"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…

Mybatis-Plus入门

Mybatis-Plus入门 MyBatis-Plus 官网:https://mp.baomidou.com/ 1、简介 MyBatis-Plus (简称 MP) 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、 提高效率而生。 https://github.com/baomidou/mybatis-p…

优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验

一、项目背景 中建科技产业园(中建光谷之星),位于武汉光谷中心城、中国(湖北)自贸试验区武汉片区双核心区,光谷发展主轴高新大道北侧,建筑面积108万平米,是中建三局“中建之星”和“…

物联网AI MicroPython学习之语法 network网络配置模块

学物联网,来万物简单IoT物联网!! network介绍 模块功能: 用于管理Wi-Fi和以太网的网络模块参考用法: import network import time nic network.WLAN(network.STA_IF) nic.active(True) if not nic.isconnected():…

WebSocket网络协议

二十六、WebSocket 26.1 介绍 WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。 HHTP协议和WebSocket协议对比&#xff…

选购护眼台灯,全网都没有说清一个关键点!——照度均匀度

网上关于护眼台灯的选购推荐帖子多如牛毛,好台灯选购要点大体可归纳为以下五点: RG0无蓝光危害(豁免级蓝光危害,RG1为低蓝光危害、RG2、RG3分别为中度和高危危害) 无眩光,无可视频闪(不刺眼…

tensorboard报错解决:No dashboards are active for the current data set

版本:tensorboard 2.10.0 问题:文件夹下明明有events文件,但用tensorboard命令却无法显示。 例如: 原因:有可能是文件路径太长了,导致系统无法读取文件。在win系统中规定,目录的绝对路径不得超…

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…

相机突然断电,保存的DAT视频文件如何打开

3-6 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在平常使用相机拍摄视频&#xff0c;比如使用佳能相机拍摄视频的时候&#xff0c;如果电池突然断电&#xff0c;就非常有可能会导致视频没来得及保存而损坏的情况&#xff0c;比如会产生下图中的这种DAT文件…

云端部署ChatGLM-6B

大模型这里更新是挺快的&#xff0c;我参考的视频教程就和我这个稍微有些不一样&#xff0c;这距离教程发布只过去4天而已… 不过基本操作也差不多 AutoDL算力云&#xff1a;https://www.autodl.com/home ChatGLM3&#xff1a;https://github.com/THUDM/ChatGLM3/tree/main Hug…

Linux进程的认识与了解[上]

文章目录 1.何为进程?1.1对进程的认识1.2基本概念 2.OS如何管理大量进程?2.1图解2.2进程的形成 3.何为PCB?3.1对PCB的认识3.2task_ struct内容分类3.2对进程表的认识 4.查看进程4.1基础指令4.2获取某进程的PID(process id)4.3杀死进程4.4获取当前进程的父进程的ppid(parent …

王道数据结构课后代码题p40 9.给定一个带表头结点的单链表,写出算法 : 按递增次序输出单链表中各结点的数据元素并释放结点 (c语言代码实现)

本题代码如下&#xff08;有注释&#xff09; void delete_min(linklist* head) {while ((*head)->next ! NULL)//循环到只剩下头节点{lnode* pre *head;//pre为元素最小结点的前驱结点指针lnode* p (*head)->next;//p为工作指针lnode* q;//指向被删除的结点while (p-…

STM32 寄存器配置笔记——GPIO配置输出

一、概述 本文主要介绍GPIO 作为输出时的寄存器配置。包括时钟配置&#xff0c;输出模式配置。以STM32F10xxx系列为例&#xff0c;配置PA8、PD2端口作为输出&#xff0c;输出高/低电平。 二、配置流程 1&#xff09;GPIO外设时钟 通过查找STM32F10xxx中文参考手册得知&#xf…

【MySQL系列】 第二章 · SQL(中)

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

Accelerate 0.24.0文档 一:极速入门

文章目录 一、概述1.1 PyTorch DDP1.2 Accelerate 分布式训练简介1.2.1 实例化Accelerator类1.2.2 将所有训练相关 PyTorch 对象传递给 prepare()方法1.2.3 启用 accelerator.backward(loss) 1.3 Accelerate 分布式评估1.4 accelerate launch 二、Accelerate 进阶2.1 notebook_…

Xshell远程登录 Linux小键盘数字输入变成字母解决办法

Xshell的设置问题&#xff0c;依次查看&#xff1a;文件-->属性-->终端-->VT模式-->初始数字键盘模式更改为&#xff1a;设置普通&#xff08;s&#xff09;

OpenGL_Learn09(摄像机)

1. 摄像机环绕观察 texture两个文件以及shader就是之前的版本 #include <glad/glad.h> #include <GLFW/glfw3.h>#include <iostream> #include "stb_image.h" #include <cmath> #include "shader.h"#include <glm/glm.hpp>…

指标体系:洞察变化的原因

一、指标概述 指标体系是指根据运营目标&#xff0c;整理出可以正确和准确反映业务运营特点的多个指标&#xff0c;并根据指标间的联系形成有机组合。 指标体系业务意义极强&#xff0c;所有指标体系都是为特定的业务经营目的而设计的。指标体系的设计应服从于这种目的&#x…

3DMAX如何渲染室内效果图?

这可能不是最好的教程,但对于3dmax初学者来说,它具有一定的学习价值和启示意义。 任何在建筑或室内设计领域工作并需要室内或外部空间“艺术家渲染”的人都会熟悉行业巨头Autodesk发布的3ds Max。 3ds Max是此类工作的默认标准,不是因为它在其他3D程序中无法完成,而是因为它…

计算机网络课后作业2023秋

计算机网络第三版吴功宜版 课后作业 第一章作业三、计算与问答3.73.8 第二章作业三、计算与问答3.23.53.6 第三章作业三、计算与问答3.13.53.73.8 第四章作业三、计算与问答3.13.2 第五章作业三、计算与问答3.13.33.4 第一章作业 三、计算与问答 3.7 3.8 第二章作业 三、计…