From 425e5a5f2c1a1e0cca86804b5cd67bf56d4d4c47 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 2 Mar 2023 17:48:37 +0100 Subject: [PATCH] [flutter] Support hot-reload of SpineWidget and controller. --- spine-flutter/lib/spine_widget.dart | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spine-flutter/lib/spine_widget.dart b/spine-flutter/lib/spine_widget.dart index c34d46a6d..528358686 100644 --- a/spine-flutter/lib/spine_widget.dart +++ b/spine-flutter/lib/spine_widget.dart @@ -373,6 +373,18 @@ class _SpineWidgetState extends State { } } + @override + void didUpdateWidget(covariant SpineWidget oldWidget) { + super.didUpdateWidget(oldWidget); + widget._controller._drawable?.dispose(); + _drawable = null; + if (widget._assetType == _AssetType.drawable) { + loadDrawable(widget._drawable!); + } else { + loadFromAsset(widget._bundle, widget._atlasFile!, widget._skeletonFile!, widget._assetType); + } + } + void loadDrawable(SkeletonDrawable drawable) { _drawable = drawable; _computedBounds = widget._boundsProvider.computeBounds(drawable);