【Flutter】四、Flutter之Icon

APP中难免要使用Icon图标,本文将介绍如何在Flutter中使用Iconfont及自带Icon的使用。

Flutter中自带的Icon可以去这里看:https://material.io/tools/icons/
使用Icon可以创建我们所需要的图标。

一、Icon构造器

const Icon(
    this.icon, {
    Key key,
    this.size,
    this.color,
    this.semanticLabel,
    this.textDirection,
  }) : super(key: key);

二、Icon属性说明

属性说明
IconData iconicon数据,可使用Icons.home方式获取,也可以使用IconData(0xe577, fontFamily: ‘MaterialIcons’);
double size图标大小,默认24.0
Color color图标颜色
String semanticLabel语义标签
TextDirection textDirection图标的文本方向

三、使用IconFont

这里使用阿里矢量库;
有两种使用方法:一种是直接使用tff字体,另一种可通过iconfont_builder插件编译成我们所需要的dart文件。
第一种:直接使用tff字体文件。
1.首先选择要使用的图标,下载代码,如果添加到了项目可选择下载至本地。
2.解压下载的字体文件,找到iconfont.tff,这是我们要使用的字体文件;将该文件添加到项目中,这里我添加到了assets/fonts下,然后配置pubspec.yaml,如下:

fonts:
    - family: iconfont
      fonts:
        - asset: assets/fonts/iconfont.ttf

3.然后就可以使用啦

// 这里的0xe611,0x是固定的,后面的e611可在iconfont中找到,如下图
Icon(IconData(0xe611, fontFamily:'iconfont'))

在这里插入图片描述
第二种方法需要借助iconfont_builder来协助我们获取dart文件
1.首先全局安装iconfont_builder

pub global activate iconfont_builder

安装完成后执行,命令行输入iconfont_builder检查是否成功,如果提示需要配置环境变量,按照提示配置环境变量即可。
2.将下载字体中的iconfont.ttf及demo_index.html放到项目中,并在pubspec.yaml中配置字体文件。
3.cd至项目路径中,执行以下代码

iconfont_builder --from ./assets/fonts --to ./lib/fonts/iconfont.dart

这一步是生成iconfont的dart文件,执行成功,则会在/lib/fonts目录下生成iconfont.dart文件
4.引入生成的iconfont.dart文件,就可以使用啦。

Icon(Iconfont.zuzhi)

四、示例代码

import 'package:flutter/material.dart';
import '../fonts/iconfont.dart';
class IconDemo extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: <Widget>[
            Icon(
              Icons.home,
              size: 30.0,
              color: Colors.green,
              semanticLabel: 'label',
              textDirection: TextDirection.rtl,
            ),
            Icon(
              IconData(0xe611, fontFamily: 'iconfont')
            ),
            Icon(
              Iconfont.daiding,
              color: Colors.blue,
            )
          ],
        )
      ],
    );
  }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MAXLZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值