Flutter入门到进阶(三)-Flutter从零开始
在此之前,我们已经运行成功Flutter
的示例工程,在main.dart
文件中默认生成了很多代码,这个时候,这些代码我们是看不大明白的,所以我们从零开始学习Flutter
组件,将main.dart
文件清空,我们自己来写界面,一步步熟悉Flutter
界面的搭建流程;
导入头文件
我们在iOS
工程中写UI
控件的时候一般需要导入UIKit
框架,那么在Flutter
中也是同样的道理,需要导入框架,在Flutter
中,这个框架名叫material.dart
,导入方式为:
import 'package:flutter/material.dart';
这个库类似于iOS
中的UIKit
,是一个素材库
;
注意:如果导入了文件,而没有使用,那么光标点击其他地方的时候,此处的import有可能会消失;
万物皆Widget
我们在做iOS
开发的时候,我们会经常使用UIView
,那么在Flutter
中,对应的控件名为Widget
(小部件),万物皆为Widget
;
一切从runApp开始
在iOS
中我们把容器
放在UIWindow
上,那么在Flutter
上,如果我们需要显示界面,那么需要先执行runApp()
方法
void main() {
runApp(
);
}
我们需要在runApp
函数中,传入一个Widget
部件;
两个简单的Widget
Center
我们先在界面上显示一个Center
,这个Widget
看名字就是将控件显示在视图中间的;
void main() {
runApp(
Center(
)
);
}
在Center
中,有一个child
,意思类似于iOS
中的subView
,存放子控件;
Text
我们在Center
中添加一个显示文字的Text
:
void main() {
runApp(
Center(
child: Text(
'第一行代码',
textDirection: TextDirection.ltr,
),
)
);
}
textDirection
为Flutter
中Text
特有的属性,不写的话,在此处的Text
控件无法显示,可以理解为文字的阅读方向,ltr
为从左到右,rtl
为从右到左,但是其显示效果一样;
这个时候,我们发现我们的代码会发出警告信息:
将光标移动到黄色虚线位置时,将会出现
💡
(灯泡),点击出现提示信息:
最终代码变为:
void main() {
runApp(
const Center(
child: Text(
'第一行代码',
textDirection: TextDirection.ltr,
),
)
);
}
加上const
之后,Center
将会变成一个常量
,因为目前Center
组件不会动态改变,那么Flutter
将会推荐将其定义为const
;
运行代码,效果如下:
此时界面中存在两个Widget
:Center
和Text
;
Flutter的小知识
Flutter的渲染机制
Flutter
的渲染机制我们称之为增量渲染
,这个渲染机制的存在也是Flutter
效率高的原因;
那么什么是增量渲染
呢?我们在iOS
中要改变UIView
的样式时,我们可以直接调用其属性
进行修改;但是在Flutter
中,如果我们想要改变view1
的效果,那么我们就需要创建一个view2
,用view2
将view1
替换掉,重新渲染这一部分控件
;
被标记为const
的控件是不会改变的(静态的),那么在Flutter
的渲染树
中,被标记为const
的控件将不会改变;
在
Flutter
中没有图层
的说法;在Xcode
中进行调试的时候,Flutter
视图只有一层;逆向的时候也就很难从UI
入手了;
转载自:https://juejin.cn/post/7025471654155255815