摘要:
图文混排, 文本点击事件, 文本动画(不在讨论之内,可以通过对view来处理),如果是简单的操作,可以用UITextView来处理,当需要特殊的定制化的时候可以采用CoreText,它是一个强大的文本处理框架,支持所有文本排列相关的定制化操作,配合CoreGraphics可以实现图文混排功能。实现原理CoreText是一个底层的文本绘制框架,它真正绘制的其实只是文本部分,如果涉及到图片还是需要手动... 阅读全文
摘要:
首先开启启动原生的应用,然后初始化flutter engine,之后在开启4个Task Runners分别是Platform Task Runner: 跟Flutter Engine的所有交互(接口调用)必须发生在Platform Thread,对应的native的主线程UI Task Runner Thread(Dart Runner): UI Task Runner被Flutter Engin... 阅读全文
摘要:
DiagnosticableTree (diagnostics.dart) Widget (framework.dart) _WidgetForTypeTests (widget_inspector.dart) PreferredSizeWidget (preferred_size.dart) AppBar (app_bar.dart) ... 阅读全文
摘要:
Flutter局部状态管理是通过注册Element依赖实现, 为此构造了InheritedWidget和InheritedModel来实现数据状态管理。InheritedWidget中内部包括了一个泛型的data类型, 用于接受数据, 它本身是一个StatefulWidget, 用于包装child并为child提供数据, 这样以 InheritedWidget 下所有的子节点就能访问它的 data... 阅读全文
摘要:
它是一种字体图标, 可以将svg的图像保存以字体的形式保存到ttf中,ttf文件根据对应的unicode和图片资源关联, 通过csv文件维护一份 图片名字和unicode的mapping表和一个ttf格式的字体图标文件, 可以非常方便管理资源, 也不容易出现重复的内容, 一份文件可以支持多个平台使用TTFTrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式.代码... 阅读全文
摘要:
这个文件定义了Flutter很多的基础动画,主要是基于Container的各个属性的动画封装,它的实现原理根据定义的时间曲线获取对应的补间值, 然后不断的更新widget的配置信息(如果有变动), 在vsync扫描时就会不断的更新每一帧的界面连在一起看就成了动画效果, 实现它需要有时间函数曲线, 补间值, vsync同步信号1.视图更新的同步信号(Vsync)Vsync信息由flutter eng... 阅读全文
摘要:
它是一个独立的dart执行上下文,有自己独立的空间,不能被其他的isolate直接访问,只能访问内部的资源, 其它isolate如果需要访问,只能通过对应的端口访问 当通过spawning方法生成一个新的isolate,调用spawning方法的isolate将会获得一个新的isolate如果创建成 阅读全文
摘要:
Flutter中的异常虽然不像Native那样会直接导致app crash,但也是不容忽视的. 比如widget构建过程因为抛出异常会导致界面灰屏,又或是某个网络请求解析失败,所以针对flutter我们也需要有一套规则来捕捉异常.Flutter中常见的异常Flutter中最最常见的一行就是空指针异常了,关于可选类型这块始终是Flutter这门语言的痛点之一,总之Flutter在数据结构转换这块和可... 阅读全文
摘要:
Future主要用于处理flutter中的异步输入事件, 通过指定不同的初始化构造函数将异步任务转化为同步执行, 提交到当前Isolate的microTask队列或eventTask队列此外还提供了遍历的方法对future进行管理, 错捕捉和拦截,future遍历, 合并, 同时还可以转换为更为灵活的Stream处理。在实际使用中应特殊注意异常的捕捉。它和Timer,Zone, Isolate密切... 阅读全文
摘要:
数据结构(二) 阅读全文