Flutter知识点总结
前言
今天开始动手学习FLutter,记录一下相关知识点~
一、变量声明
Dart与JavaScript类似,可使用var关键字声明变量,不同的是在Dart中var声明的变量会在第一次赋值时绑定类型之后便不可再次修改。- 使用
dynamic关键字声明变量,但dynamic声明的变量可以在后期改变数据类型。 final和const,两者都可以让变量不可被修改,区别是:const是一个编译常量,而final在第一次使用时被初始化。
二、StatefulWidget和StatelessWidget
可根据是否有误状态简单分为StatefulWidget和StatelessWidget。StatefulWidget即在生命周期中拥有状态的Widget,更具体一点来说StatefulWidget类至少由两个类组成:
StatefulWidget类State类:这个类才是真正在声明周期中状态发生变化的类
State类
State类里面有
- 自己的私有属性,即状态;
build方法,该方法返回一个Widget;setState方法,在该方法里改变状态会触发build方法,重新渲染UI;
在构建页面的时候会在build方法中用到Scaffold,Scaffold是Material 提供的页面脚手架,他包含标题,导航栏和包含主屏幕Widget的body属性。
三、MaterialPageRoute
MaterialPageRoute继承自PageRoute类,是一个占满屏幕的静态路由页面,还定义了路由构建及切换时过渡动画的相关接口及属性。
Navigator
Navigator是路由管理的组件:
Future push(BuildContext context, Route route),路由入栈,返回一个Future对象(和Promise对象特别像,也支持async和await),返回的值是该页面退出是返回给上一层组件的参数。bool pop(BuildContext context, [ result ]),这个可选参数result 就是要返回给上一层页面的参数。
例子见:Flutter实战
|