美文网首页
Flutter 无状态、有状态widget、页面跳转、调试、调用

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

作者: 迷途之中小书童 | 来源:发表于2018-09-13 16:54 被阅读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层方法

    相关文章

      网友评论

          本文标题:Flutter 无状态、有状态widget、页面跳转、调试、调用

          本文链接:https://www.haomeiwen.com/subject/vytggftx.html