diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index bf80a69330..31d3aad4a1 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -4989,6 +4989,7 @@ class RenderAnnotatedRegion extends RenderProxyBox { RenderBox? child, }) : _value = value, _sized = sized, + _layerHandle = LayerHandle>(), super(child); /// A value which can be retrieved using [Layer.find]. @@ -5013,6 +5014,8 @@ class RenderAnnotatedRegion extends RenderProxyBox { markNeedsPaint(); } + final LayerHandle> _layerHandle; + @override final bool alwaysNeedsCompositing = true; @@ -5024,6 +5027,13 @@ class RenderAnnotatedRegion extends RenderProxyBox { size: sized ? size : null, offset: sized ? offset : null, ); + _layerHandle.layer = layer; context.pushLayer(layer, super.paint, offset); } + + @override + void dispose() { + _layerHandle.layer = null; + super.dispose(); + } } diff --git a/packages/flutter/test/material/date_picker_theme_test.dart b/packages/flutter/test/material/date_picker_theme_test.dart index 1a7a6adbb3..c093b1f0a9 100644 --- a/packages/flutter/test/material/date_picker_theme_test.dart +++ b/packages/flutter/test/material/date_picker_theme_test.dart @@ -552,12 +552,7 @@ void main() { await gesture.moveTo(tester.getCenter(find.text('18'))); await tester.pumpAndSettle(); expect(inkFeatures, paints..circle(color: datePickerTheme.rangeSelectionOverlayColor?.resolve({}))); - }, - leakTrackingTestConfig: const LeakTrackingTestConfig( - // TODO(ksokolovskyi): remove after fixing - // https://github.com/flutter/flutter/issues/136036 - notDisposedAllowList: {'AnnotatedRegionLayer': 2}, - )); + }); testWidgetsWithLeakTracking('Dividers use DatePickerThemeData.dividerColor', (WidgetTester tester) async { Future showPicker(WidgetTester tester, Size size) async { @@ -902,10 +897,5 @@ void main() { ..circle(color: rangeSelectionOverlayColor.resolve({MaterialState.pressed})), ); } - }, - leakTrackingTestConfig: const LeakTrackingTestConfig( - // TODO(ksokolovskyi): remove after fixing - // https://github.com/flutter/flutter/issues/136036 - notDisposedAllowList: {'AnnotatedRegionLayer': 2}, - )); + }); }