【问题标题】:Flutter: Specify and use an asset within a packageFlutter:在包中指定和使用资产
【发布时间】:2020-09-10 17:42:05
【问题描述】:

在 Flutter/Dart 包中指定和引用资源的一般方法是什么?

我尝试了各种方法,但在尝试创建图像小部件时总是收到错误 Unable to load asset: path/to/imageImage(image: AssetImage('path/to/image'))

我的目标是创建自定义按钮库,其中一些应该带有自定义图标(图像)。

我想在我自己的包中使用图像,而不是在应用程序之外并改为公开完整的按钮小部件。

例如,假设我正在创建一个名为 wolf 的包:

  • wolf/
  • wolf/lib/wolf.dart
  • wolf/lib/src/Wolf.dart
  • wolf/pubspec.yaml

你在上述目录结构中的什么地方放置了一个资产,你如何在pubspec.yaml 中定义它(如果需要)以及你如何在wolf/lib/src/Wolf.dart 中使用它?

【问题讨论】:

标签: flutter dart dart-pub


【解决方案1】:

在您的pubsec.yaml 中,您需要包含资产,像这样-

flutter:
  assets:
    - assets/logos/google_light.png
    - assets/logos/google_dark.png

在你的包中创建一个小部件并使用它。在AssetImagepackage属性中使用你的包名(假设你的包名是flutter_mypackage_button),像这样-

Image(
    image: AssetImage(
        button == Buttons.Google
            ? 'assets/logos/google_light.png'
            : 'assets/logos/google_dark.png',
        package: 'flutter_mypackage_button',
    ),
    height: 36.0,
)

我希望这样做。

【讨论】:

  • 感谢您的努力,但在发布此问题之前我已经阅读了这篇确切的文章,我不明白如何使用包内(而不是包外)的资产。
  • 感谢@kartoon,这正是我想要的。关键在于package属性的使用。
猜你喜欢
  • 1970-01-01
  • 2022-12-18
  • 2021-08-10
  • 2020-05-16
  • 2020-04-18
  • 1970-01-01
  • 2020-12-19
  • 2019-07-11
  • 2022-09-27
相关资源
最近更新 更多