需求1:在Widget初始化后就发送一次通知
需求2:通知中需要携带Size作为数据
分析:flutter库里有一个SizeChangedLayoutNotification及与其配合工作的SizeChangedLayoutNotifier、_RenderSizeChangedWithCallback ,源码如下。
class SizeChangedLayoutNotification extends LayoutChangedNotification {
}
class SizeChangedLayoutNotifier extends SingleChildRenderObjectWidget {
const SizeChangedLayoutNotifier({
Key key,
Widget child,
}) : super(key: key, child: child);
@override
_RenderSizeChangedWithCallback createRenderObject(BuildContext context) {
return _RenderSizeChangedWithCallback(
onLayoutChangedCallback: () {
SizeChangedLayoutNotification().dispatch(context);
}
);
}
}
class _RenderSizeC