Flutter 基础
Flutter UI
-
什么是声明式UI?
-
如何在声明性框架中更改UI?
为什么是声明式UI?
从 Win32 到 Web 再到 Android 和 iOS 的框架中,通常使用的都是命令式UI编程风格。这可能是我们最熟悉的样式 - 你手动构建全功能UI实体(如UIView或等效实体),然后在UI更改时使用方法对其进行变更。
为了减轻开发人员在各种UI状态之间转换的变成负担,Flutter让开发人员描述当前的UI状态,并且从不需要关心他是如何过渡到框架的。虽然声明式UI能帮我们减轻很多负担,但大家要将布局的思维方式转变过来
如何在声明性框架中更改UI
在声明式UI中,视图配置(例如Flutter的widget)是不可变的,并且只是轻量级的“蓝图”。要更改UI,Widget 会在自身上触发重建(最常见的是通过在 Flutter 中的 StatefulWidgets 上调用 setState())并构造一个新的Widget子树:
return ViewB(
color:red
child:ViewC(...)
)
在Flutter 构建新的 Widget 实例,而不是咋UI更嘎斯是改变旧实例 b 。Flutter框架使用 RenderObjects
管理传统UI对象的许多职责(例如维护布局的状态)。RenderObjects
在帧之间保持不变,Flutter的轻量级 Widget告诉框架在状态之间改变 RenderObjects
,接下来Flutter框架会处理其余部分。