BoxDecoration: DecorationImage 全屏背景图片

Pie*_*ter 6 dart flutter

根据Flutter 文档,我尝试使用 DecoratedBox 加载全屏图像作为容器的背景图像。

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

flutter:
  uses-material-design: true
  assets:
    - assets/background.png
Run Code Online (Sandbox Code Playgroud)

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

@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,
              ),
            ),
     ),
  }
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Unable to load asset: assets/background.png 

Image provider: ExactAssetImage(name: "assets/background.png", scale: 1.0, bundle: null)
Run Code Online (Sandbox Code Playgroud)

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

Col*_*son 5

这个对我有用。需要仔细检查的几件事:

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