2017-05-09 300 views
2

根據Flutter docs我試圖使用DecoratedBox加載全屏圖像作爲Container的背景圖像。BoxDecoration:DecorationImage全屏幕背景圖片

我pubspec.yaml包含一個嵌入式資產相關的定義:

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) 

很明顯,該軟件包無法正確解析。有沒有人知道我在這裏做錯了什麼?

回答

2

它適合我。幾件事要仔細檢查:

  • 熱重新加載/重新啓動不會更改資產,所以請確保您正在執行常規生成。
  • 嘗試從設備上卸載應用程序並做一個乾淨的構建,有時構建系統很難替換舊的安裝(例如,如果您的調試密鑰更改)
  • 請確保實際資產以及所有對它的引用指向assets/background.png,而不是images/background.png(默認的pubspec.yaml建議將圖像放入一個名爲images的文件夾中,但只要所有內容匹配,就沒有關係)。
  • 嘗試使用的AssetImage代替ExactAssetImage
  • 確保集裝箱要麼有一個孩子或者是在那裏將通過其父在給定大小的地方(如Stack將被罰款,但Column會導致其如果它沒有固有尺寸或孩子,則爲0x0)
+0

從控制檯運行「flutter build clean」並從intellij運行main.dart修復了此問題。當我運行該項目時,似乎intellij不是重建/更新生成文件夾。謝謝! – Pieter

+0

你在iOS或Android上運行嗎?如果是iOS,它可能與https://github.com/flutter/flutter/issues/9846 –

+0

在Android設備上運行的問題相同。 – Pieter