Flutter随记
Stateless widgets
是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的.
Stateful widgets
持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:
一个 StatefulWidget类。
一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在.
void main() {
runApp(MyApp());
}
等同于:
void main() => runApp(new MyApp());
“=>” 符号,是Dart中单行函数或方法的简写。
变量以下划线(_)开头,在Dart语言中使用下划线前缀标识符,会强制其变成私有的。
Flutter的布局方法
重点是什么?
• Widgets是用于构建UI的类.
• Widgets用于布局和UI元素.
• 通过简单的widget来构建复杂的widget
Flutter布局机制的核心就是widget。在Flutter中,几乎所有东西都是一个widget - 甚至布局模型都是widget。您在Flutter应用中看到的图像、图标和文本都是widget。 甚至你看不到的东西也是widget,例如行(row)、列(column)以及用来排列、约束和对齐这些可见widget的网格(grid)。
Container也是一个widget,允许您自定义其子widget。如果要添加填充,边距,边框或背景色,请使用Container来设置(只有容器有这些属性)。
布局一个widget
重点是什么?
即使应用程序本身也是一个 widget.
创建一个widget并将其添加到布局widget中是很简单的.
要在设备上显示widget,请将布局widget添加到app widget中。
使用Scaffold是最容易的,它是Material Components库中的一个widget,它提供了一个默认banner,背景颜色,并且具有添加drawer,snack bar和底部sheet的API。
如果您愿意,可以构建仅使用标准widget库中的widget来构建您的应用程序.
垂直和水平放置多个widget
最常见的布局模式之一是垂直或水平排列widget。您可以使用行(Row)水平排列widget,并使用列(Column)垂直排列widget。
重点是什么?
行和列是两种最常用的布局模式。
行和列都需要一个子widget列表。
子widget本身可以是行、列或其他复杂widget。
您可以指定行或列如何在垂直或水平方向上对齐其子项
您可以拉伸或限制特定的子widget.
您可以指定子widget如何使用行或列的可用空间.