BoxDecoration:DecorationImage全屏背景图片

时间:2017-05-09 13:48:20

标签: dart flutter

根据Flutter docs我试图使用DecorativeBox将全屏图像加载为Container的背景图像。

我的pubspec.yaml包含嵌入资产的相关定义:

flutter:
  uses-material-design: true
  assets:
    - assets/background.png

并且widget.dart尝试按规定填充新Container的背景:

@override
  Widget build(BuildContext context) {
    return new Container(
            decoration: new BoxDecoration(
              color: Colors.purple,
              image : new DecorationImage(
                image: new ExactAssetImage('assets/background.png'),
                fit: BoxFit.cover,
              ),
            ),
     ),
  }

但是我收到以下错误:

Unable to load asset: assets/background.png 

Image provider: ExactAssetImage(name: "assets/background.png", scale: 1.0, bundle: null)

显然捆绑包没有正确解析。有没有人知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

它对我有用。一些要仔细检查的事情:

  • 热重新加载/重新启动不会更改资产,因此请确保您正在进行常规构建。
  • 尝试从设备卸载应用程序并进行干净的构建,有时构建系统很难替换旧安装(例如,如果调试密钥更改)
  • 确保实际资产及其所有引用都指向assets / background.png而不是images / background.png(默认的pubspec.yaml建议将图像放入名为images的文件夹中,但它没有&只要一切都匹配就行了。)
  • 尝试使用AssetImage代替ExactAssetImage
  • 确保Container有一个孩子或者在其父母给它一个大小的地方(例如Stack会没事,但是Column会导致它0x0如果没有内在大小或孩子)