Flutter 无状态、有状态widget、页面跳转、调试、调用

2018-09-13  本文已影响0人  迷途之中小书童

statelessWidget

Stateless widgets 无状态控件是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的. 如app入口runApp的widget

使用时继承 StatelessWidget

statefullWidget

Stateful widgets 有状态控件。持有的状态可在widget生命周期中发生变化实现一个 stateful widget 至少需要两个类。
1.一个 StatefulWidget类
2.一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在,且可改变
实现方式:

1.自定义一个类继承自statefulWidget
2.重写createState()方法,为该statefulWidget创建一个state对象
3.自定义一个状态类继承自State,重写build()方法,根据需要的逻辑处理返回widget,build方法会在view状态改变时进行回调,重新渲染(自动响应式框架)

widget更新

widget只支持一帧,每一帧都会重新绘制widget实例,相当于一次绘制整个界面,widget本身都不可变,想要可变就需要控制状态,无状态和有状态 widget的核心特性是相同的。每一帧它们都会重新构建,不同之处在于StatefulWidget有一个State对象,它可以跨帧存储状态数据并恢复它。可交互就是有状态的,stateless中可以包含stateful。

页面跳转

Navigator.of(context).push(
new MaterialPageRoute(
builder: (context) {
return new MyListView();
},
),
);

常用调试flutter的几种调试方式

参考:https://flutterchina.club/debugging/

调用java代码

java层
1.自定义插件实现MethodCallHandler
2.实现onMehtodCall()方法
3.通过MehodCannel类注册自定义插件类(需要传入插件标识)
flutter层
1.创建MethodChannel并在构造函数中传入插件标识
2. 通过channnel实例调用invokeMethod()调用java层方法

上一篇下一篇

猜你喜欢

热点阅读