Flutter IconThemeData


简介

IconThemeData为图标提供属性,必须是Icon的父级

  • 图标主题Icon和ImageIcon的依赖,获取当前主题,是用IconTheme.of

基本用法

  • 部分widget无法管理大小,IconThemeData的size属性失效。
  • 通过opacity属性,修改widget透明度,如下图

实例演示

import 'package:flutter/material.dart';

class IconThemeDemo extends StatelessWidget {
  final Color curColor;
  final double curOpacity;

  IconThemeDemo({Key key, this.curColor, this.curOpacity}) : super();

  @override
  Widget build(BuildContext context) {
    return Container(
      child:  IconTheme(
        //opacity: 设置透明
        data:  IconThemeData(
          color: curColor,
          opacity: curOpacity,
        ),
        child:  Icon(Icons.favorite),
      ),
    );
  }
}

class IconThemeDemo2 extends StatelessWidget {
  final Color curColor;
  final double curSize;

  IconThemeDemo2({Key key, this.curColor, this.curSize}) : super();

  @override
  Widget build(BuildContext context) {
    return AppBar(
      actions: <Widget>[
         IconTheme(
            data:  IconThemeData(color: curColor, opacity: 1.0),
            child: Row(
              children: <Widget>[
                Icon(Icons.favorite_border),
                Padding(
                  padding: const EdgeInsets.all(20.0),
                  child: Text('喜欢'),
                ),
              ],
            )),
      ],
    );
  }
}