图标
注意图标来源,此文档以Material 3
图标为例
基本使用
return Icon(
Icons.home, // 图标名称
size: 16, // 图标大小
color: Colors.blue, // 图标颜色
)
所有的Google图标可以点击这里查看
动画
注意,AnimatedIcon
不能用于创建图标动画,这里以修改图标颜色动画为例
方法一: 使用AnimatedSwitcher
// 无效的AnimatedSwitcher,因为每个Icon没有指定的Key
return Obx(()=>
AnimatedSwitcher(
duration: const Duration(milliseconds: 200),
child: useBlue ? Icon(
Icons.home,
color: Colors.blue,
) : Icon(
Icons.home,
color: Colors.red,
)
)
);
正确做法:
return Obx(()=>
AnimatedSwitcher(
duration: const Duration(milliseconds: 200),
child: useBlue ? Icon(
key: ValueKey("blue")
Icons.home,
color: Colors.blue,
) : Icon(
key: ValueKey("red")
Icons.home,
color: Colors.red,
)
)
);
方法二 (建议): 使用Tween
return TweenAnimationBuilder(
tween: ColorTween(end: controller.val.value==1 ? Colors.blue : Colors.red),
duration: const Duration(milliseconds: 200),
builder: (_, value, __) => Icon(
Icons.home,
color: value,
)
);