widgets library

Element 公共小部件集合

Classes

AnimatedColoredBox
动画颜色盒子
AnimatedDecoratedBox
动画装饰器盒子
AnimatedIconTheme
AnimatedOffset
动画 Offset 偏移
AnimatedRefreshProgressIndicator
动画刷新指示器
ElBox
盒子小部件
ElBuilderRenderObjectElement
ElBuilderRenderObjectWidget
扩展 SingleChildRenderObjectWidget 小部件,在此基础上允许构建 builder 访问当前 context 对象
ElChildSizeBuilder
ElChildSizeListener
ElCustomMultiChildLayoutWidget
ElDebugWidget
调试小部件
ElDragStartListener
ElFirstPaintCallback
ElFps
显示当前帧率小部件
ElImplicitlyAnimatedWidget
Hook 版本的隐式抽象动画小部件,用法比 ImplicitlyAnimatedWidget 更简单一些, 继承此类的小部件需要实现 effectsforEachTweenbuildAnimatedWidget 三个抽象方法
ElListenableBuilder<L extends Listenable, D>
ElMultiUniqueElement
ElMultiUniqueWidget
渲染多个节点小部件,每个子节点通过 id 进行区分,默认情况下无法保证子节点的绘制顺序, 尤其是在动态增删子元素的情况下,新增的元素永远会显示在最前面, 而 MultiChildRenderObjectElement 则可以确保 Widget 数组的顺序一致(基于双向链表)。
ElNestScrollWrapper
ElPaint
是否允许绘制子元素
ElPointerProxy
将事件命中测试转移至 ElPointerProxyHandler 小部件,应用场景:
ElPointerProxyHandler
在小部件树中较高层级创建一个代理事件小部件,它会代理后代 ElPointerProxy 的命中测试, 解决 hitTestSelf 被剔除的事件命中问题:https://github.com/flutter/flutter/issues/75747
ElPopScope<T>
原生 PopScope 的变体,该小部件只执行最后一个拦截返回事件
ElPositioned
Positioned 的基础上添加 index 权重来调整内容的显示层级
ElRebuildWidget<W extends Widget>
ElRenderMultiUniqueBox
多节点渲染对象,所有节点存放在 renderBoxMap 集合,你可以通过 id 访问目标渲染对象
ElRenderSecondChildBox
ElRenderStack
ElRing
ElSafeArea
使用 ElApp 所在的 context 访问 MediaQuery 对象填充安全边距,它与原生 SafeArea 的区别在于, 祖先使用 SafeArea 添加安全内边距会删除使用的内边距,这会导致后代组件可能无法正确添加安全边距。
ElScroll
滚动小部件,它会一次性布局所有子项,但不会渲染可视窗口外的元素
ElScrollNotify
感知子组件的滚动事件
ElScrollResampling
给滚动小部件开启局部重采样
ElSecondChildElement
ElSecondChildWidget
SingleChildRenderObjectWidget 类似,不过它还支持渲染第二个 Widget 子组件
ElStack
Stack 的变体,允许通过 index 来调整堆叠小部件的显示层级
ElTriangle
ElUniqueWidget
实现 id 标识符的 Widget 接口
IconThemeTween
OffsetTween

Mixins

ElSingleChildRenderObjectElementMixin
通用的单个 child 元素混入类,用于替代 SingleChildRenderObjectElement
ElUniqueIndexMixin
在 Element 对象中永久持有 index 权重,如果子元素显示层级是固定的,那么没必要在 Element 中混入此类

Typedefs

ElTweenVisitor = void Function(String key, dynamic targetValue, Tween<Object?> tween)
UpdateCustomLayoutSize = void Function(Size size)
更新自定义布局尺寸回调函数