flutter assets配置加载本地图片报错

首选列出我在照着网上说的设置assets怎么搞都报错,错误如下,搞的我想骂娘。

flutter:

uses-material-design: true

assets:

  • assets/images

后来找到了下面这个教程,才终于解决,就是要在后面加一个"/" 。

flutter这个大傻逼yaml配置文件太傻逼了吧。差评!!!

**在Flutter中,不需要将每个图片单独列出来。**‌你可以通过指定一个包含所有相关图片的目录来实现资源的批量引用,而不需要逐个列出每个文件。这种方法不仅简化了配置过程,还提高了开发效率‌。

pubspec.yaml文件中声明资源时,你可以选择逐个指定文件或通过子目录批量指定。逐个指定需要提供文件的完整相对路径,而批量指定只需在目录名后加上路径分隔符即可。需要注意的是,目录批量指定并不递归,只有该目录下的文件可以被包括,如果有子目录,需要单独声明子目录下的文件‌。

例如,如果你有一个名为assets的文件夹,其中包含多个图像文件和一些子文件夹,你可以这样声明:

flutter:

assets:

- assets/image1.png

- assets/images/

这里的assets/images/表示所有位于assets/images目录下的文件都将被包含进来,而不需要逐个列出每个文件‌。这里着重强调的最新版的flutter在设置目录的时候一定要带上最后的"/",不然会报错。

最后,完成资源的声明后,就可以在代码中通过Image.asset()方法访问这些资源了。例如:

dartCopy Code

Image.asset('assets/image1.png')

或者

Image.asset('assets/images/mine/navBack.png')

这样,Flutter会自动从声明的资源中查找并加载相应的图片‌。

复制代码
import 'package:flutter/material.dart';


class SplashPage extends StatefulWidget {
  const SplashPage({super.key});

  @override
  State<SplashPage> createState() => _SplashPageState();
}

class _SplashPageState extends State<SplashPage> {
  @override
  Widget build(BuildContext context) {
     return  Scaffold(
          body: Stack(
            children: [
                 Image.asset(
                      'assets/images/ic_launcher.png',
                      fit: BoxFit.cover
                ),
                  Image.asset(
                      'assets/images/bg.jpg',
                      fit: BoxFit.cover
                )
            ],
          )
     );
  }
}

最后图片终于显示出来了:

相关推荐
Baklib梅梅17 分钟前
探码科技再获“专精特新”认定:Baklib引领AI内容管理新方向
前端·ruby on rails·前端框架·ruby
南方以南_23 分钟前
Chrome开发者工具
前端·chrome
YiHanXii30 分钟前
this 输出题
前端·javascript·1024程序员节
楊无好37 分钟前
React中ref
前端·react.js
维他命Coco37 分钟前
js常见开发学习
javascript
程琬清君39 分钟前
vue3 confirm倒计时
前端·1024程序员节
歪歪1001 小时前
在C#中详细介绍一下Visual Studio中如何使用数据可视化工具
开发语言·前端·c#·visual studio code·visual studio·1024程序员节
唔661 小时前
flutter实现web端实现效果
前端·flutter
csj501 小时前
前端基础之《React(2)—webpack简介-使用Babel》
前端·react
!win !2 小时前
分享二个实用正则
javascript·正则表达式