flutter汇总(1)

2019-08-06  本文已影响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之间的区别

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()。

上一篇 下一篇

猜你喜欢

热点阅读