0%

Flutter 介绍 01

简介

本系列是我在熟悉Flutter编程语言时记录的一些笔记,希望通过这些记录,掌握Flutter在移动端的一般开发方法,目标是做出一些自己满意的产品。

Flutter 配置

最近尝试进行移动端开发,了解了Flutter框架以及Dart语言,希望能够对其进行深入的探索。

FlutterAndroidIOSWebDesktopDart

Flutter

  1. “Everything is a widget” 是指所有代码片段都可以用Widget表示,并非指Flutter只有Widget。有点类似函数第一性,Widget是Flutter的页面构成单位,Style,Animation,Lists,Text,Button…这些都可以用Widget 表示,Widget嵌套是Flutter的应用构建方式。举例来说,并没有一个统一的叫App的作为应用入口,所有的Widget理论上都可以作为应用的入口。Flutter当然也包含其他非Widget的对象。
  2. 组合优于继承。实践中,很少通过继承方式扩展一个Widget。一般都通过组合Widget的方式构建特定的Widget对象。这有点类似React的方式。
Flutter WidgetstatelessstatefulStatefulWidgetState (setState() to info Flutter redraw)

StateFul对象

ConstructorWidget.createState()
ConstructormountedinitStatedirty statebuildclean statedisposedidChangeDependenciessetStatedidUpdateState

Application Style

Flutter StyleMaterial Design ( Google )Cupertion (IOS Style, less widgets)

Widget类型

Flutter WidgetsLayoutRowColumnScaffoldStackAnimationsFadeInPhoteStructuresButtonToastMenuDrawerStyleTextStyleColorPaddingPosition and AlignmentCenterPadding

每一个Widget均提供build 方法,并且该方法均需返回一个Widget对象。

StateFulWidget的build方法由State对象提供,通过*createState()*方法建立。StateFulWidget的伴随对象State是可以改变的,但StateFulWidget自身与StateLess对象一样,是不可变的(Immutable)。

Widget的build方法以及BuildContext对象

1
Widget build(BuildContext context) 

BuildContext由Flutter框架构建,在其调用build方法时传入。

State对象的setState方法

setState接受一个VoidCallback函数对象作为参数,在调用时将会依照配置重新调用所有依赖对象的buid方法完成重绘。注意,相关数据准备应该在重绘开始前完成,这意味着不可以执行一个异步(Async) 方法且不等待其完成,并且期待其结束后再次重绘UI。

State对象的initState方法

当Widget对象被Flutter装载时调用,在Flutter试图执行绘制前执行,用来初始化数据。

一般需要先调用super.initState()方法。

Welcome to my other publishing channels