美文网首页
Flutter入坑笔记

Flutter入坑笔记

作者: Kraos | 来源:发表于2019-06-12 11:01 被阅读0次
    • 根据Widget的源码,只要newWidgetoldWidgetruntimeTypekey同时相等时就会用newWidget去更新Element对象的配置,否则就会创建新的Element

      @immutable
      abstract class Widget extends DiagnosticableTree {
        const Widget({ this.key });
        final Key key;
      
        @protected
        Element createElement();
      
        @override
        String toStringShort() {
          return key == null ? '$runtimeType' : '$runtimeType-$key';
        }
        static bool canUpdate(Widget oldWidget, Widget newWidget) {
          return oldWidget.runtimeType == newWidget.runtimeType
              && oldWidget.key == newWidget.key;
        }
      }
      
    • StatefulWidget也是继承自widget类,并重写了createElement()方法,不同的是返回的Element 对象并不相同;另外StatefulWidget类中添加了一个新的接口createState(),如源码所示:

      abstract class StatefulWidget extends Widget {
        const StatefulWidget({ Key key }) : super(key: key);
      
        @override
        StatefulElement createElement() => new StatefulElement(this);
      
        @protected
        State createState();
      }
      

    相关文章

      网友评论

          本文标题:Flutter入坑笔记

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