美文网首页
flutter foundation的TextTreeRende

flutter foundation的TextTreeRende

作者: 一叠纸船 | 来源:发表于2020-09-17 10:50 被阅读0次

    TextTreeRenderer这个类是很有意思的,它差不多有300多行代码,但是只有三个方法,更严格来说是只有两个方法。因为开放的(public)render方法也是通过私有的(private)_debugRender实现其主要功能的;另一个是_childTextConfiguration方法,这个方法只有两行代码实现。所以这个类重心就是在_debugRender方法,在解读_debugRender方法之前,我们先说说属性吧。

    属性:
    1. _wrapWidth 这个属性对应的值是int类型,代表的一行最大字符数
    2. _wrapWidthProperties 这个属性对应的值也是int类型,代表的属性一行的最大字符数。
    3. _minLevel 这个属性对应的值是DiagnosticLevel枚举类型,定义了当当前的子节点的level低于_minLevel时是会被过滤掉的,即不会输出和展示。
    4. _maxDescendentsTruncatableNode 这个属性对应的值也是int类型,对应的值代表最大子孙节点的个数
    方法:
    1. _childTextConfiguration 这个方法就是获取当前的节点的子孙节点的textStyle,返回值的类型是TextTreeConfiguration。内部实现也很好看懂,就是当子节点是单行的样式和DiagnosticsTreeStyle.errorProperty就使用当前节点的样式,除此之外就用子节点本身的样式。
    2. render 这个方法在release环境就是直接返回空字符串的,非release环境就是调用的下方的_debugRender方法
    3. _debugRender这个方法内部的实现初一看是很复杂的,但是如果很熟悉

    这是解读flutter foundation的diagnostic中的一篇,如有错漏之处,还望斧正。

    相关文章

      网友评论

          本文标题:flutter foundation的TextTreeRende

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