Flutter源码分析 Flutter 2024-07-25 PipelineOwner在runApp时,RenderBinding创建PipelineOwner。PipelineOwner的作用:不断收集Dirty Render Objects驱动Rendering Pipeline刷新UI Read More
Flutter源码分析 Flutter 2024-07-25 WidgetWidget1234567891011121314151617181920212223242526272829303132333435363738394041@immutable // 不可变abstract class Widget extends DiagnosticableTree { //DiagnosticableTree提供调试信息 const Widget({ this.key }); final Key? key;//canUpdate中判断前后的key是否相同,则使用新的Widget配置更新Element对象,否则创建新的Element对象 @protected @factory Element createElement();//每个Widget都有对应的Element。Widget树根Element树对应 @override String toStringShort() { final String type = objectRuntimeType(this, 'Widget'); return key == null ? type : '$type-$key'; } @override void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties.defaultDiagnosticsTreeStyle = DiagnosticsTreeStyle.dense; } @override @nonVirtual bool operator ==(Object other) => super == other; @override @nonVirtual int get hashCode => super.hashCode; // 是否可以用newWidget修改前一帧oldWidget生成的Element,而不是创建新的Element static bool canUpdate(Widget oldWidget, Widget newWidget) { return oldWidget.runtimeType == newWidget.runtimeType && oldWidget.key == newWidget.key; }}Widget的特点: Read More
Flutter开源库 Flutter 2024-07-10 syncfusionsyncfusion公司提供了一整套强大的图表UI库,其中图表、日历、PDF等功能非常强大。图表库图表的分类和名词解释:数据可视化 - 图表对于产品如何选择某种图表,可以参考:B端可视化: 图表设计(2) Read More