美文网首页
flutter汇总(1)

flutter汇总(1)

作者: 萤火虫离别的礼物 | 来源:发表于2019-08-06 16:09 被阅读0次

1、FocusNode

FocusNode可以实现对输入框的获取或者失去焦点的监听。

FocusNode focusNode = new FocusNode();
focusNode.addListener(() {
   setState(() {
     keyboardAppeared = focusNode.hasFocus;
   });
 });

2、一些控件的总结

Offstage: 控制child显示还是隐藏,offstage为true时隐藏
Chip: 用作显示标签,自带删除按钮。左侧可以设置小图标,label显示文本
ClipPath: 切割控件成不同的形状,clipper属性里面设置切割的path。
Material: 可设置阴影、圆角
ClipRRect: 高效切圆角
ClipOval: 椭圆
CircleAvatar: 设置圆形头像
futureBuilder: 根据网络请求的不同状态显示不同的视图,将请求数据的方法赋值给全局变量,可以防止futureBuilder不必要的重绘问题
IgnorePointer:控制控件是否接收触摸事件

3、extends、mixin、implements之间的区别

  • 继承(关键字 extends)、混入 mixins (关键字 with)、接口实现(关键字 implements)。这三者可以同时存在,前后顺序是extends -> mixins -> implements。
  • extends 继承在flutter中是单继承,构造函数不能继承,子类重写超类的方法,要用@override,子类调用超类的方法,要用super。
  • implements 接口实现,也是Class,如果有一个类 A,你想让类B拥有A的API,但又不想拥有A里的实现,那么你就应该把A当做接口,类B implements 类A.
    当class被当做interface用时,class中的方法就是接口的方法,需要在子类里重新实现,在子类实现的时候要加@override
    当class被当做interface用时,class中的成员变量也需要在子类里重新实现。在成员变量前加@override
  • mixin 混入,是一种在多个类层次结构中复用类代码的方法。在dart21.版本中,mixins类只能继承自object,mixins类不能有构造函数,一个类可以mixins多个mixins类。

4、State对象的初始化流程

initState() : 一旦State对象被创建,initState方法是第一个(构造函数之后)被调用的方法。可通过重写来执行额外的初始化,如初始化动画、控制器等。重写该方法时,应该首先调用super.initState()。在initState中,无法真正使用context,因为框架还没有完全将其与state关联。initState在该State对象的生命周期内将不会再次调用。

didChangeDependencies(): 这是第二个被调用的方法。在这一阶段,context已经可用。如果你的Widget链接到了一个InheritedWidget并且/或者你需要初始化一些listeners(基于context),通常会重写该方法。请注意,如果Widget链接到InheritedWidget,则每次重建Widget时都会调用此方法。如果重写此方法,则应首先调用super.didChangeDependencies()。

build(BuildContext context): 此方法在didChangeDependencies()、didUpdateWidget()之后被调用。每次State对象更新(或当InheritedWidget有新的通知时)都会调用该方法!我们一般都在build中来编写真正的功能代码。为了强制重建,可以在需要的时候调用setState((){...})方法。

dispose(): 此方法在Widget被废弃时调用。可重写该方法来执行一些清理操作(如解除listeners),并在此之后立即调用super.dispose()。

相关文章

网友评论

      本文标题:flutter汇总(1)

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