
在前面的十五篇中,我们一直在学习 Dart 语言与面向对象思想:
从这一篇开始,我们正式进入 Flutter。
👉 Flutter 和之前所有内容的连接点只有一个:Widget
官方定义:
Flutter 是一个 使用 Dart 构建跨平台 UI 的框架
但更准确的一句话是:
Flutter = 用 Dart 写 UI
Flutter 中有一句非常著名的话:
Everything is a Widget(万物皆 Widget)
意思是:
📌 Flutter 没有“页面对象”,只有 Widget 树
从 Dart 角度看:
Widget 是一个类
从 Flutter 角度看:
Widget 是 UI 的描述
👉 Widget 不是控件本身,而是:
“我希望界面长什么样”
一个 Flutter App 的入口仍然是 main:
void main() {
runApp(MyApp());
}
这里:
runApp 是 Flutter 提供的方法MyApp 是一个 Widgetclass MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('Hello Flutter');
}
}
拆解理解:
MyApp 是一个 WidgetStatelessWidgetbuild 方法StatelessWidget 表示:
没有状态变化的 Widget
特点:
例如:
Widget build(BuildContext context)
含义是:
告诉 Flutter:这个 Widget 长什么样
你在 build 中:
📌 build 方法可能会被多次调用 👉 必须是“纯描述”,不能写业务逻辑
Flutter UI 的核心思想是:
Widget 套 Widget
例如:
Center(
child: Text('Hello Flutter'),
)
意思是:
真实 Flutter App 一般长这样:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Text('Hello Flutter'),
),
),
);
}
}
Text('Hello Flutter')
用于显示文本。
Center(
child: Text('Hello'),
)
用于居中子 Widget。
你刚才的代码,本质是:
MyApp
└─ MaterialApp
└─ Scaffold
└─ Center
└─ Text
📌 Flutter 渲染 UI,就是遍历这棵树。
在 Android 中:
Flutter:
UI = Dart 代码
好处:
你前面学的 Dart 抽象类,现在终于派上用场了。
不要把 Widget 理解为: ❌ “控件对象”
而是: ✅ 配置 + 描述
Widget 本身是不可变的:
你已经完成了:
这是Flutter 学习的真正起点。
本篇你掌握了:
《Flutter 零基础入门(十七):StatelessWidget 与 State 的第一次分离》
下一篇我们将学习:
从下一篇开始:
你将真正进入“状态驱动 UI”的 Flutter 核心思想