Flutter:图标组件Icon
简介图标组件是展示图标的组件,但是再Flutter中,Icon组件是只是起一个展示效果,不能进行交互,如果要实现交互,就需要使用图标按钮IconButton组件。
图标组件是展示图标的组件,但是再Flutter中,Icon组件是只是起一个展示效果,不能进行交互,如果要实现交互,就需要使用图标按钮IconButton组件。
图标组件有如下几个组件:
- IconButton:可以交互的Icon
- Icons:Flutter自带的Icon集合
- IconTheme:Icon主题
- ImageIcon:通过AssetImage或其他图片显示Icon
Flutter的Icon组件和图片的对比:
- 1、体积小,减少安装包的大小;
- 2、矢量的:icon都是矢量图标,缩放不会影响其清晰度;
- 3、可以应用文本样式:可以像文本一样改变字体图标的颜色、大小对齐等;
- 4、可以通过TextSpan和文本混用;
Icon的常用属性:
- color:Color类型,设置图标的颜色
- size:Double类型,设置图标的尺寸
1、Icon的基本使用
return Icon(Icons.add);
2、Icon设置颜色和尺寸
return Icon(
Icons.add,
color: Colors.blue,
size: 100.0,
);
3、使用Text显示Icon
String icons = "";
icons += "\ue145";//这里根据图标Icons.add去查找对应的16进制,必须替换0x为\u
icons += " \ue0cd";
icons += " \uE90D";
return Text(
icons,
style: TextStyle(
fontFamily: "MaterialIcons",//必须要添加该属性才能显示
fontSize: 50.0,
color: Colors.blue,
),
);
4、自定义图标
在实际工作中,系统自带的图标完全不能满足我们的需求,所以我们可以在www.iconfont.cn上去下载自己需要的库,在Flutter中只需要ttf的格式。
4.1、首先去iconfont.cn上去打包下载自己需要的图标
4.2、在项目的根目录下新建一个icons目录,将上一步下载里的ttf格式的文件拷贝进去
4.3、修改pubspec.yaml文件,添加或修改如下内容:
fonts:
- family: hiIcon
fonts:
- asset: fonts/iconfont.ttf
4.4、定义一个Icon类型,内容如下:
import 'package:flutter/material.dart';
class HiIcons {
static const IconData shuaxin = const IconData(
0xe63a,//这个需要在第一步下载的包中去找到iconfont.css文件,里面有对应图标的编码
fontFamily: 'hiIcon',//这个必须跟pubspec.yaml里的名字保持一致
matchTextDirection: true,
);
static const IconData macdizhiguizheng = const IconData(
0xe6f3,
fontFamily: 'hiIcon',
matchTextDirection: true,
);
}
4.5、导入第四步的类,然后进行使用即可
import '../HiCoins.dart';
return Column(
children: <Widget>[
Icon(
HiIcons.shuaxin,
color: Colors.blue,
size: 50.0,
),
Icon(
HiIcons.macdizhiguizheng,
color: Colors.blue,
size: 50.0,
),
],
);
重新编译下,即可看到下面的效果图
5、图标按钮组件(IconButton)
在前面我们已经说过,如果想要Icon具有交互操作,那么就需要使用IconButton组件,图标按钮组件是基于Material Design风格的组件,所以在按下的时候会有水波纹效果。如果设置onPressed回调函数为null,这个按钮就处于禁用状态。
return Center(
child: IconButton(
icon: Icon(
Icons.volume_up,
color: Colors.green[600],
size: 40.0,
),
tooltip: '按下显示',
onPressed: () {
print("按下打印");
},
),
);

《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。
如何通过查询语句来查询某个数据的排名,本文主要介绍MySql和MongoDB两种数据库的查询方式来进行排名。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Centos中用Chrome将网页导出为PDF,chrome --headless --print-to-pdf https://developer.chrome.com/
工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到子类中。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。