flutter-0001搭建环境

安装 vscode 插件 flutter
要能够编译桌面应用,您必须在特定的平台上编译应用: 在 Windows 上构建 Windows 应用,在 macOS 上构建 macOS 应用,在 Linux 上构建 Linux 应用

// 设置代理就不用下面的操作了
set http_proxy=http://127.0.0.1:7890
set https_proxy=https://127.0.0.1:7890

// 国内不翻墙的话需要使用镜像,设置下面两个环境变量,国内的社区提供的
set PUB_HOSTED_URL=https://pub.flutter-io.cn
set FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
git clone -b dev https://github.com/flutter/flutter.git
export PATH="$PWD/flutter/bin:$PATH"

Shanghai Jiaotong University Linux User Group
set FLUTTER_STORAGE_BASE_URL=https://mirrors.sjtug.sjtu.edu.cn/
set PUB_HOSTED_URL=https://dart-pub.mirrors.sjtug.sjtu.edu.cn/
// 升级
flutter upgrade
// 检查依赖
flutter doctor
// 查看支持哪些平台
flutter devices

flutter config --enable-windows-desktop
// <platform> = linux, windows, macos

// 创建项目
flutter create project_name
// 运行
flutter run -d windows
// 发布程序,路径在windows/runner/releae下面
flutter build windows

// 需要下面的运行库
msvcp140.dll
vcruntime140.dll
vcruntime140_1.dll

使用 IntelliJ IDE

打开插件偏好设置 (位于 File > Settings > Plugins)
选择 Marketplace (扩展商店),选择 Flutter plugin 然后点击 Install (安装)。

创建项目,选择Flutter SDK 路径,然后输入项目名字,main.dart 在 lib 目录下面

快速简要介绍下列三种构建模式:

  1. 开发过程中,需要使用 热重载 功能,请选择 debug 构建模式;
  2. 当你需要分析性能的时候,选择使用 profile 构建模式;
  3. 发布应用的时候,需要选择使用 release 构建模式。

布局

使用代码来构建 UI,widget 是构建 Flutter UI 的基本单元,非常容易组合,这意味着你能够通过组合已有的 widgets 来创造更多复杂的 widgets

Row 和 Column 类
用来容纳和布局 widgets 的类,在它们内部的 widgets 我们称为 children, Row 和 Column 就作为它们的父级。 Row 将会让 widgets 水平排列,而 Column 则会让其竖直排列。
mainAxisAlignment 和 crossAxisAlignment 属性决定了 Row 和 Column在各个轴上如何布局 widget

Flexible widget
当 Flexible widget 包裹 widget 时,这个 widget 就成为 Flexible widget 的子节点,并被视为 flexible 的。在布置固定大小的 widget 后, Flex 的 widget 根据其 flex 和 fit 属性调整大小:

flex
将自身的 flex 因子与其他的比较,以决定自身占剩余空间的比例。

fit
决定 Flexible 的 widget 是否能够填充所有剩余空间。

框架里面有两个最主要的 Widget 类:StatefulWidget 和 StatelessWidget。

许多 Widget 都是无状态的:它们的属性不随着时间改变。这样的 Widget 是 StatelessWidget 的子类。
如果 Widget 的某个特征需要根据用户交互或者其他因素发生改变,那么这种 Widget 是 StatefulWidget。

通用布局

标准 widgets
Container:向 widget 增加 padding、margins、borders、background color 或者其他的“装饰”。
GridView:将 widget 展示为一个可滚动的网格。
ListView:将 widget 展示为一个可滚动的列表。
Stack:将 widget 覆盖在另一个的上面。

Material widgets
Card:将相关信息整理到一个有圆角和阴影的盒子中。
ListTile:将最多三行的文本、可选的导语以及后面的图标组织在一行中。

widget

main->runApp->MyApp->MaterialApp->Scaffold

material Icon等资源官网