Flutter 结构和导包

在这里插入图片描述

A. 入口程序 main.dart

每一个Flutter项目的/lib目录下都有一个main.dart文件,打开该文件,里面应该有一个main()函数。Flutter使用Dart语言开发,而在Dart语言中,main()函数是Dart程序的入口,也就是说,Flutter程序在运行的时候,第一个执行的函数就是main()函数。如下面的代码所示:

C. 程序入口

void main() => runApp(Widget app);

从上面的代码中可以看到,main()函数中只调用runApp函数,使用runApp函数可以将给定的根组件填满整个屏幕。你可能会有疑问,为什么一定要使用runApp函数?如果不调用runApp函数,项目也可以正常执行,但是屏幕上什么都不会显示。Flutter是Dart语言的移动应用框架,runApp函数就是Flutter框架的入口,如果不调用runApp函数,那你执行的就是一个Dart控制台应用。

B. Material Design设计风格

每一个.dart文件的第一行几乎都会导入flutter/material.dart包,这个包是Flutter实现Material Design设计风格的基础包,里面有文本输入框(Text)、图标(Icon)、图片(Image)、行排列布局(Row)、列排列布局(Column)、Decoration(装饰器)、动画等组件,大家可以将它们理解为网页中的按钮、标题、选项框等组件库。

import 'package:flutter/material.dart';

那么Material Design又是什么呢?是谷歌推出的一套视觉设计语言。比如有的App可以换皮肤,而每一套皮肤就是一种设计语言,有古典风、炫酷风、极简风,等等,而Material Design就是谷歌风。Flutter采用的就是Material Design风格。

D.E 无状态组件和有状态组件

● 无状态组件(StatelessWidget)是不可变的,这意味着它们的属性不能改变,所有的值都是最终的。
● 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化。实现一个StatefulWidget至少需要两个类:
○ 一个StatefulWidget类。
○ 一个State类。StatefulWidget类本身是不变的,但是State类在Widget生命周期中始终存在。

使用资源包

Flutter包类似于Java语言里的jar包,由全球众多开发者共同提供第三方库。例如,网络请求(http)、自定义导航/路由处理(fluro)、集成设备API(如url_launcher&battery)以及第三方平台SDK(如Firebase)等。这使得开发者可以快速构建应用程序,而无须从头造轮子。

所有包(package)都会发布到Dart的包仓库里
包仓库地址:

// 地址 (需要翻墙) https://pub.dartlang.org 
// 国内地址 https://pub.flutter-io.cn

在这里插入图片描述

包使用示例
在这里插入图片描述

点击Packages get 在控制台输出:
在这里插入图片描述

引用和使用
在这里插入图片描述

import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final wordPair = new WordPair.random();
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Hello Flutter'),
        ),
        body: new Center(
          child: new Text(wordPair.asPascalCase),
        ),
      ),
    );
  }
}

分享个返利程序,可以赚点零花钱。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值