初识flutter,安装到入门
1、dart安装
windows(推荐):
http://www.gekorm.com/dart-windows/
mac:
如果mac电脑没有安装brew这个工具首先第一步需要安装它: https://brew.sh/
brew tap dart-lang/dart
brew install dart
dart -version检测安装是否成功
安装太慢解决办法:https://blog.csdn.net/weixin_37910453/article/details/94060152
这里我们主要给大家讲解的是如果在Vscode中配置Dart。
1、找到vscode插件安装dart
2、找到vscode插件安装code runner Code Runner 可以运行我们的文件
2.dart语法
var
类似于JavaScript中的var,它可以接收任何类型的变量,但最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型
dynamic和Object
Object 是Dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null),所以任何类型的数据都可以赋值给Object声明的对象. dynamic与var一样都是关键词
-
相同点:声明的变量可以赋值任意对象。而dynamic与Object相同之处在于,他们声明的变量可以在后期改变赋值类型
- 不同点:dynamic与Object不同的是,dynamic声明的对象编译器会提供所有可能的组合,而Object声明的对象只能使用Object的属性与方法,否则编译器会报错也就是说,dynamic声明的对象拥有该对象的所有属性和方法等(包括object的属性方法),而object声明的对象只拥有object的属性与方法
final和const: 常量
- 相同点: 被final或const修饰的变量,变量类型可以省略,两者修饰的变量都是常量
- 不同点:const要求在声明时初始化,赋值必需为编译时常量;final变量在第一次使用时被初始化, 并不要求赋的值一定是编译时常量,可以是常量也可以不是常量
Dart 里的 String
跟 Java 中的一样,是不可变对象;不同的是,检测两个 String 的内容是否一样事,我们使用 == 进行比较;如果要测试两个对象是否是同一个对象(indentity test),使用 identical 函数。
在 Dart 2 里,创建对象时可以省略 new 关键字,也推荐省略 new
关键字 is:
if (obj is Map<String, int>) {}
注解 @required
如果想告诉用户某个具名参数是必须的,可以使用注解 @required:
Dart 不支持函数的重载。、
字符串
使用三个单引号或三个双引号 创建多行字符串
异步
- 当使用async作为方法名后缀声明时,说明这个方法的返回值是一个Future;
- 当执行到该方法代码用await关键字标注时,会暂停该方法其他部分执行;
- 当await关键字引用的Future执行完成,下一行代码会立即执行。
可选命名参数
在方法参数中,使用"{}"包围的参数属于可选命名参数,比如
void _buildThree(int num, {String name, int range}) {
}
可选位置参数
在方法参数中,使用"[]"包围的参数属于可选位置参数,比如
void _buildHouse(int num, [String where, int range]) {
}
void _buildHouseAndDefaultValue(int num, [String where = 'Shanghai', int range]) {
flutter
电脑配置要求
(一) 操作系统:Windows 7 SP1或更高版本(64位)
(二) 磁盘空间:400 MB(不包括IDE /工具的磁盘空间)。
(三) 对Android Studio的要求:需要安装3.0 或者更高的版本。
(四) Flutter支持的sdk环境:Android 4.1(API 16)或者更高版本。
(五) 对Android模拟器镜像的要求:推荐使用x86或者x86_64镜像。
(六) 工具:Flutter需要用到以下2个工具:
(1) PowerShell 5.0或更新版本
(2) Git for Windows(下载Flutter)
flutter upgrade更新命令
(3)环境变量配置
(4)flutter的常见命令
在flutter根目录打开flutter_console.bat,输入命令,flutter不支持Git小乌龟或黑窗口命令
要查看您当前使用的分支,请运行flutter channel查看。
要切换分支,请使用flutter channel beta 或 flutter channel master
| 常用命令 | 含义 |
|---|---|
| –version | 查看Flutter版本 |
| -h或者**–help** | 打印所有命令行用法信息 |
| analyze | 分析项目的Dart代码。 |
| build | Flutter构建命令。 |
| channel | 列表或开关Flutter通道。 |
| clean | 删除构建/目录。 |
| config | 配置Flutter设置。 |
| create | 创建一个新的Flutter项目。 |
| devices | 列出所有连接的设备。 |
| doctor | 展示了有关安装工具的信息。 |
| drive | 为当前项目运行Flutter驱动程序测试。 |
| format | 格式一个或多个Dart文件。 |
| fuchsia_reload | 在Fuchsia上进行热重载。 |
| help | 显示帮助信息的Flutter。 |
| install | 在附加设备上安装Flutter应用程序。 |
| logs | 显示用于运行Flutter应用程序的日志输出。 |
| packages | 命令用于管理Flutter包。 |
| precache | 填充了Flutter工具的二进制工件缓存。 |
| run | 在附加设备上运行你的Flutter应用程序。 |
| screenshot | 从一个连接的设备截图。 |
| stop | 停止在附加设备上的Flutter应用。 |
| test | 对当前项目的Flutter单元测试。 |
| trace | 开始并停止跟踪运行的Flutter应用程序。 |
| upgrade | 升级你的Flutter副本。 |
(5)Android Studio配置
Flutter对的要求:需要安装3.0 或者更高的版本
Android Studio需要Flutter和Dart插件才可以使用:
(6)创建我们的第一个FlutterDemo
Flutter支持的sdk环境:Android 4.1(API 16)或者更高版本。 Android模拟器:推荐使用x86或者x86_64镜像。
(一)打开AS,点击 File --> New Flutter Project,选择Flutter application ,点击next,输入一个工程名字
**注意:**项目名称必须是小写,单词之间用下划线隔开
(二)输入包名,点击next,点击finish,等待编译就可以了。如果没配置好,这个时候往往会报错。
三)首先模拟器,然后选择要运行的项目,注意了,这里有一个MainActivity 和 main.dart,选择main.dart,然后点击绿色的三角号图标运行(或者点击菜单栏 Run)就可以了。

出现上图因为你没有配置adb,需要在本地配置adb,还有一个ANDROID_HOME也一定要配置:
https://blog.csdn.net/lyh1299259684/article/details/80505185?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
adb配置:

ANDROID_HOME配置:

说明一下:这里的变量名一定要是ANDROID_HOME,否则会出错。变量值为你android sdk的路径
第一次创建项目卡着了,解决办法上网搜,gradle改为国内镜像
https://blog.csdn.net/lj402159806/article/details/78422953
大致是自己去gradle网站https://services.gradle.org/distributions/上下载你要的版本,然后配置当前工程使用本地路径的gradle。
修改gradle_wrapper.properties的distributionUrl=https://http://services.gradle.org/distributions/gradle-5.6.2-all.zip
为
distributionUrl=file:/Users/xxx/.gradle/wrapper/dists/gradle-5.6.2-all/local/gradle-5.6.2-bin.zip
注:经过测试不改gradle_wrapper.properties也可以,改build.gradle文件镜像地址为国内
需要安卓28
每个项目的build.gradle修改配置
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/'}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/'}
}
}
运行flutter doctor --android-licenses命令
- Linux 或 Mac
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
- Windows
新增两个环境变量即可
PUB_HOSTED_URL ===== https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Raz44Zc-1665627182939)(C:\Users\liang\AppData\Roaming\Typora\typora-user-images\1602726895228.png)]
配完变量重启电脑
flutter packages get获取包,在项目根目录下运行命令*
flutter pub get
https://blog.csdn.net/jinglinggg/article/details/105383270
第一次运行别的项目设置gradle版本
build.gradle文件设置
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
gradle-wrapper.properties文件设置
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
另外可能需要设置dart和flutter的目录
Scaffold布局控件
自带主页骨架
《flutter实战》笔记
1、路由管理
onPressed: (){
Navigator.push(context,
MaterialPageRoute(
builder:(context){
return NewRoute();
}
)
);
},
MaterialPageRoute({
WidgetBuilder builder,
RouteSettings settings,
bool maintainState = true,
bool fullscreenDialog = false,
})
maintainState:默认情况下,当入栈一个新路由时,原来的路由仍然会被保存在内存中,如果想在路由没用的时候释放其所占用的所有资源,可以设置maintainState为false。
1.2.4 路由传值
1.2.5 命名路由
注册路由表
路由表的注册方式很简单,我们回到之前“计数器”的示例,然后在MyApp类的build方法中找到MaterialApp,添加routes属性,代码如下:
MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
//注册路由表
routes:{
"new_page":(context) => NewRoute(),
... // 省略其它路由注册信息
} ,
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
Navigator.pushNamed(context, "new_page");
命名路由参数传递
var args=ModalRoute.of(context).settings.arguments;
2.3 包管理
flutter如何使用配置文件pubspec.yaml(位于项目根目录)来管理第三方依赖包。
1、将“english_words”(3.1.3版本)添加到依赖项列表,如下:
2、下载包。在Android Studio的编辑器视图中查看pubspec.yaml时(图2-6),单击右上角的 Packages get 。
3、引入english_words包。
其它依赖方式
上文所述的依赖方式是依赖Pub仓库的。但我们还可以依赖本地包和git仓库。
-
依赖Git:你也可以依赖存储在Git仓库中的包。如果软件包位于仓库的根目录中,请使用以下语法
dependencies: pkg1: git: url: git://github.com/xxx/pkg1.git上面假定包位于Git存储库的根目录中。如果不是这种情况,可以使用path参数指定相对位置,例如:
dependencies: package1: git: url: git://github.com/flutter/packages.git path: packages/package1
上面介绍的这些依赖方式是Flutter开发中常用的,但还有一些其它依赖方式,完整的内容读者可以自行查看:https://www.dartlang.org/tools/pub/dependencies 。
2.4 资源管理
指定 assets
和包管理一样,Flutter也使用pubspec.yaml文件来管理应用程序所需的资源,举个例子:
错误总结
1、Unimplemented handling of missing static target
不用热重载,重新运行就好,可能是新导入包了
demo笔记
实现一个 stateful widget 至少需要两个类:
-
一个 StatefulWidget类。
-
一个 State类。
格式化代码
- Android Studio / IntelliJ IDEA: 右键单击Dart代码,然后选择 Reformat Code with dartfmt.
。
2.4 资源管理
指定 assets
和包管理一样,Flutter也使用pubspec.yaml文件来管理应用程序所需的资源,举个例子:
错误总结
1、Unimplemented handling of missing static target
不用热重载,重新运行就好,可能是新导入包了
demo笔记
实现一个 stateful widget 至少需要两个类:
-
一个 StatefulWidget类。
-
一个 State类。
格式化代码
- Android Studio / IntelliJ IDEA: 右键单击Dart代码,然后选择 Reformat Code with dartfmt.
在Dart语言中使用下划线前缀标识符,会强制其变成私有的。
更多推荐



所有评论(0)