flutter应用程序结构

1.Flutter项目的目录结构

3707079-4e53e024becfb613.png

我们着重需要注意一下几个文件夹,其他的暂时不用理会

android:android平台相关代码

ios:ios平台相关代码

lib:flutter相关代码,我们主要编写的代码就在这个文件夹

test:用于存放测试代码

pubspec.yaml:配置文件,一般存放一些第三方的依赖。

2.分析

(1).导入包:

import'package:flutter/material.dart';

此行代码作用是导入了Material UI组件库。Material是一种标准的移动端和web端的视觉设计语言, Flutter默认提供了一套丰富的Material风格的UI组件。

(2).应用入口:

void main() => runApp(new MyApp());

(3).应用结构:

3707079-cb610883c54ecdf4.png

MyApp类代表Flutter应用,它继承了StatelessWidget类,这也就意味着应用本身也是一个widget。

在Flutter中,大多数东西都是widget,包括对齐(alignment)、填充(padding)和布局(layout)。

Flutter在构建页面时,会调用组件的build方法,widget的主要工作是提供一个build()方法来描述如何构建UI界面(通常是通过组合、拼装其它基础widget)。

MaterialApp是Material库中提供的Flutter APP框架,通过它可以设置应用的名称、主题、语言、首页及路由列表等。MaterialApp也是一个widget。

Scaffold是Material库中提供的页面脚手架,它包含导航栏和Body以及FloatingActionButton(如果需要的话)。 本书后面示例中,路由默认都是通过Scaffold创建。

home为Flutter应用的首页,它也是一个widget。

(4).首页

3707079-cc7d5826848857a0.png

MyHomePage是应用的首页,它继承自StatefulWidget类,表示它是一个有状态的widget(Stateful widget)。现在,我们可以简单认为Stateful widget 和Stateless widget有两点不同:

Stateful widget可以拥有状态,这些状态在widget生命周期中是可以变的,而Stateless widget是不可变的。

Stateful widget至少由两个类组成:

      一个StatefulWidget类。

     一个 State类;StatefulWidget类本身是不变的,但是 State类中持有的状态在widget生命周期中可能会发生变化。

为了开发的灵活性,我们一般将build()方法放在State中,这样的话,构建过程则可以直接访问状态,这样会很方便。

猜你喜欢

转载自blog.csdn.net/weixin_33892359/article/details/90985721