美文网首页Flutter Web 专题
Flutter Web 项目文件介绍

Flutter Web 项目文件介绍

作者: NetWork小贱 | 来源:发表于2020-06-29 19:22 被阅读0次

介绍

经过上一篇 Flutter Web 的介绍以及环境配置 我知道, Flutter Web 项目比不支持 Web 的项目多了一些文件。这些文件的作用是什么?下面我们就探究一下。

Flutter Web 项目结构

一、目录结构图

![目录结构图] image.png

从上图我们看到在不打开一些文件夹时,Flutter Web 项目一共有 14 个;而不支持 Flutter Web 项目有 11 个。两个对比如下:

是否支持 Web 的对比

从上图看到多出的文件是   .ideawebflutterapp.iml   三个文件。

二、.idea 文件夹内容介绍

1、 文件夹包含内容如下图所示:
.idea 文件夹
  • libraries 文件夹
    libraries 文件夹 主要是一些库的引入路径管理文件。该文件家夹下有 Dart_SDK.xmlKotlinJavaRuntime.xml 两个文件。
    1、Dart_SDK.xml
    主要是dart-sdk/lib 下的一些库路径管理。如下图所示:

    Dart_SDK.xml 内容
    2、KotlinJavaRuntime.xml
    主要是安卓 Kotlin Runtime 相关的一些 jar 包和资源,如下图所示:
    KotlinJavaRuntime.xml 内容
  • runConfigurations 文件夹
    该文件夹主是Flutter Web 项目运行的配置管理文件存放处。包含 main_dart.xml 文件。
    其中 main_dart.xml 的内容如下图所示:

    main_dart.xml 内容
    从上图我们可以看到,main_dart.xml 的主要功能是配置 Flutter Web 项目启动那个main.dart 文件(因为在 ****Flutter Web*** 刚出现的时候,项目的 web 目录下也会有一个 main.dart 文件)。
  • modules.xml 文件
    这个文件主要是项目引入模块的管理文件。内容如下:

    modules.xml 内容
  • workspace.xml 文件
    这个主要是项目的工作空间配置文件。内容如下:

    workspace.xml 内容

三、androidios 文件夹

这两个文件夹下内容主要是 androidios 两个平台的项目基础代码。如下图所示:

android / ios 基础内容

四、lib 文件夹

该文件夹是我们后期开发项目代码以及资源等存放处。该文件夹下包含main.dart 文件。
如下图所示:

lib 文件夹

五、web 文件夹

这是Flutter Web 项目生成的文件夹,里面内容如下图:

web 文件夹
  • iconsfavicon 图标
    这两个是 Flutter Web 项目使用的图标资源。
    Icon-xx.png 是项目图标
    favicon 是浏览器标题图标

  • index.html 文件
    这是Web 的入口文件,主要是配置项目,有 js引入、显示设置、flutter_service_worker.js 的注册等

  • manifest.json 文件
    这是项目显示配置。主要有 主体颜色、项目名字、简称、描述,资源等,如下图所示:

    manifest.json 内容

六、flutterapp.xml 文件

该文件是新module 根管理文件,内容如下:

flutterapp.xml

七、Flutter Web 的应用

创建一个列表,在lib 文件夹下的 main.dart 文件修改如下:

main.dart

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Web',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter Web List"),
      ),
      body: Container(
        child: ListView.builder(
          itemBuilder: (content, index) {
            return ListTile(
              title: Text("$index"),
            );
          },
          itemCount: 10,
        ),
      ),
    );
  }
}

效果:


修改效果

相关文章

网友评论

    本文标题:Flutter Web 项目文件介绍

    本文链接:https://www.haomeiwen.com/subject/uziofktx.html