从资产加载图像时出错

时间:2019-07-16 01:53:19

标签: flutter dart

我正在尝试将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,现在一切正常!

3 个答案:

答案 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"),
            ),

          ],
 ), 
相关问题