这篇文章给大家分享的是有关Flutter如何安装使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
序言
Flutter
出来已经有些日子了,越来越多的开发者也开始尝试使用 Flutter
进行开发,Flutter
是谷歌的移动UI
框架,基于 Dart
语言,支持多端开发(Android
、iOS
、Web
),听到这里是不是想要跃跃欲试了,由于小编也正在踩坑的路上,所以有写的不对的地方还请多多指教。
官网
任何一门语言,官网都是最好的学习渠道,虽然说大多数都是英文的,但现在谷歌已经有很多都支持中文版本了:
Flutter中文官网:https://flutterchina.club/
安装
安装直接按照官网的来就行了,最主要的就是配置一下环境变量,下载下来的 flutter
包你可以理解为 java
中的 jar
包,开发的时候需要导入的。
特性
1、widget(相当于Android中的View)
我们都知道,在 Android
中页面是由很多个View
来构成的,在 Flutter
中,Widget
用来构成页面上的内容,但是和 View
不同的是,Widget
是不可变的,有些人可能就有疑问了,不可变那岂不是静态页面,非也非也,那肯定有其他办法的咯,接着往下看:
1.1、不可变状态的小部件StatelessWidget
你可以将 StatelessWidget
理解成 Android 中
的 ViewGroup
,这是一个无状态的小部件,什么意思呢,就是当你的页面部分不依赖于对象配置信息外的其他任何内容时,简而言之就是你的页面是静态页面时,就可以使用它。
1.2、可变状态的小部件StatefulWidget
和 StatelessWidget
一样可以理解为 ViewGroup
,但是它是有状态的,这个状态类似于 Activity
的生命周期,当你的页面需要动态的改变时,你就需要使用它。
注意
如果一个 Widget
发生了变化(用户与之交互),那么它就是有状态的;如果一个子 Widget
是有状态的,那么包裹它的父 Widget
可以是有状态的也可以是无状态的,简而言之,StatelessWidget
中可以包含 StatefulWidget
,而 StatefulWidget
中也可以包含 StatelessWidget
。
2、Android中的四大组件还有与之对应的吗
除了页面之外,其他的肯定都没有,因为毕竟是跨端开发的框架,不是专门为 Android
而设计的,可能有些人要问了,那如果想实现 Android
中的一些特殊的功能岂不是做不了了,非也非也,这个就属于另外一个知识了,卖个关子先,接着往下看;Activity
和 Fragment
在 Flutter
中都变成了 Widget
。
3、资源文件
3.1、资源图片
在Android
中资源图片有很多种分辨率,Flutter
遵循像iOS
这样简单的3
种分辨率格式: 1x
, 2x
, 3x
,在根目录下创建一个 images
的文件夹,然后再在 images
文件夹中创建三个文件夹用来存放不同分辨率的图片:
../icon.png
../2.0x/icon.png
../3.0x/icon.png
然后,你需要在 pubspec.yaml
中配置这些图片,这个文件相当于Android
中的 gradle
文件。
3.2、字符串
在 Flutter
中,目前最好的做法就是新建一个类,用来声明你所需要的字符串
声明: class Strings{ static String welcomeMessage = "Welcome To Flutter"; } 使用: new Text(Strings.welcomeMessage);
4、生命周期
在 Flutter
中,StatelessWidget
是没有生命周期的,只有 StatefulWidget
才有,我们一般通过挂接到WidgetsBinding
观察并监听didChangeAppLifecycleState
更改事件来监听生命周期事件,有以下这些生命周期:
resumed
- 应用程序可见并响应用户输入。这是来自Android
的onResume
inactive
- 应用程序处于非活动状态,并且未接收用户输入。此事件在Android
上未使用,仅适用于iOS
paused
- 应用程序当前对用户不可见,不响应用户输入,并在后台运行。这是来自Android
的onPause
suspending
- 该应用程序将暂时中止。这在iOS上
未使用
5、异步UI
Dart
是单线程执行模型,支持Isolates
(在另一个线程上运行Dart
代码的方式)、事件循环和异步编程。 除非您启动一个Isolate
,否则您的Dart
代码将在主UI
线程中运行,并由事件循环驱动。
当你进行网络请求时,可以在UI
线程直接运行网络请求代码:
loadData() async { String dataURL = "https://jsonplaceholder.typicode.com/posts"; http.Response response = await http.get(dataURL); setState(() { widgets = JSON.decode(response.body); }); }
这里使用了 async/awai
t 语法来调用API
,你可以理解为,使用 async
之后这个方法就变成了异步的方法,然后需要等待(await)
网络请求完成之后再执行下面更新语句;在 StatefulWidget
中,我们使用 setState
方法来更新UI
操作,这会重新执行 build
方法。
感谢各位的阅读!关于“Flutter如何安装使用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!