dart - 盒子装饰 : DecorationImage Fullscreen background image

标签 dart flutter

根据 Flutter docs我正在尝试使用 DecoratedBox 加载全屏图像作为容器的背景图像。

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

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

并且 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,
              ),
            ),
     ),
  }

但是我得到以下错误:

Unable to load asset: assets/background.png 

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

很明显,包没有正确解析。有谁知道我到底做错了什么?

最佳答案

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

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

关于dart - 盒子装饰 : DecorationImage Fullscreen background image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43871648/

相关文章:

android - 使用flutter获取simcard信息

json - 未处理的异常:类型 '_InternalLinkedHashMap<String, dynamic>'不是类型转换中类型 'List<dynamic>'的子类型吗?

flutter - 随手上传文件,显示缩略图

animation - 使动画随着 flutter 而弹跳

flutter - 每次在 Flutter 中初始化时,将参数传递给 Riverpod 提供程序的有效方法是什么?

flutter - 如何将元素设置到 SingleCildScrollView 的底部?

Android 的 onStart 等价物

flutter - 由于它在 Dart 中的类型,该参数的值不能为 'null'

Flutter:从 Firebase 实时数据库项目创建 GridView

android - 键盘在 flutter 中打开时 Ui 溢出