我正在尝试将PNG文件用作图标图像。
我在项目的根目录中有一个assets
文件夹。
文件的路径为assets/icons/Dumbbell.png
。
我将资产加载到pubspec文件中
flutter:
uses-material-design: true
assets:
- assets/icons/
在有状态小部件的状态下,我正在尝试使用它:
@override
Widget build(BuildContext context) {
return Scaffold(
...
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
title: Text('Workout'),
icon: Image.asset(
'assets/icons/Dumbbell.png',
),
),
],
),
);
}
我无法使其正常工作!
编辑:我删除了const
关键字,并添加了另一个BottomNavigationBarItem
,现在一切正常!
答案 0 :(得分:3)
要解决您的问题,只需删除const
关键字即可,因为您的图标不是恒定的,并且您至少需要两个BottomNavigationBarItem
小部件才能使其正常工作:
items: [
BottomNavigationBarItem(
title: Text('Workout'),
icon: Image.asset(
'assets/icons/Dumbbell.png',
),
),
BottomNavigationBarItem(
title: Text('Another item'),
icon: Image.asset(
'assets/icons/Dumbbell.png',
),
),
],
此处有更多信息:https://api.flutter.dev/flutter/material/BottomNavigationBar-class.html
答案 1 :(得分:-1)
再次尝试此演示
Image(image: AssetImage('assets/images/intro_0.jpg'),fit: BoxFit.fitWidth,)
diegoveloper的话是对的。和BottomNavigationBar需要另外两项。 这些代码有效:
bottomNavigationBar:BottomNavigationBar(
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
title: Text('Workout'),
icon: Image(image: AssetImage('assets/images/intro_0.jpg'),fit: BoxFit.fitWidth,),
),
BottomNavigationBarItem(
title: Text('Workout'),
icon: Image(image: AssetImage('assets/images/intro_0.jpg'),fit: BoxFit.fitWidth,),
),
],
),
答案 2 :(得分:-1)
尝试一下。
使用ImageIcon类代替Image.asset
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: ImageIcon(AssetImage("assets/mascot.png")),
title: Text("workout"),
),
],
),