
到目前为止,你已经掌握了:
但是,一个完整的 App 离不开图标与图片资源:
Icon(Icons.home, size: 40, color: Colors.blue);
📌 说明:
Icons → Flutter 内置图标库size → 图标大小color → 图标颜色ElevatedButton.icon(
onPressed: () {},
icon: Icon(Icons.add),
label: Text('添加'),
)
📌 功能:
assets/images/ 文件夹pubspec.yaml 注册:flutter:
assets:
- assets/images/
Image.asset(
'assets/images/flutter_logo.png',
width: 100,
height: 100,
fit: BoxFit.cover,
)
📌 功能:
width / height 控制尺寸fit 控制缩放填充方式BoxFit.cover → 裁剪填充BoxFit.contain → 等比缩放BoxFit.fill → 拉伸填充Image.network(
'https://flutter.dev/images/flutter-logo-sharing.png',
width: 100,
height: 100,
loadingBuilder: (context, child, loadingProgress) {
if (loadingProgress == null) return child;
return Center(child: CircularProgressIndicator());
},
)
📌 功能:
loadingBuilder 显示加载进度CircleAvatar(
radius: 40,
backgroundImage: AssetImage('assets/images/avatar.png'),
)
📌 功能:头像圆形显示,常用用户头像
FadeInImage.assetNetwork(
placeholder: 'assets/images/loading.gif',
image: 'https://flutter.dev/images/flutter-logo-sharing.png',
width: 100,
height: 100,
fit: BoxFit.cover,
)
📌 功能:网络图片加载占位过渡效果
ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage('assets/images/avatar.png'),
),
title: Text('用户名'),
subtitle: Text('消息内容'),
trailing: Icon(Icons.chevron_right),
)
📌 功能:
cached_network_image 插件❌ 图片路径未注册 → 加载失败 ❌ 网络图片未处理加载 / 错误 → 页面空白 ❌ 图标颜色与主题冲突 → 可使用 color: Theme.of(context).primaryColor❌ CircleAvatar 直接加载大图 → 内存占用高
📌 建议:
你已经学会:
📌 到这里为止:
你的 App 已经具备完整视觉元素的能力 ✅
Icon + Image + CircleAvatar + FadeInImage 占位图 / 缓存 / 尺寸优化 App 视觉效果专业美观
《Flutter 零基础入门(四十五):表单与输入控件 —— TextField、表单校验与提交实战》
下一篇我们将学习:
🚀 让你的 App 可以收集用户输入与提交数据