diff --git a/packages/flutter/lib/src/material/slider.dart b/packages/flutter/lib/src/material/slider.dart index 442a0ccb1b4f..22a172a82d2a 100644 --- a/packages/flutter/lib/src/material/slider.dart +++ b/packages/flutter/lib/src/material/slider.dart @@ -1868,7 +1868,7 @@ class _RenderValueIndicator extends RenderBox with RelayoutWhenSystemFontsChange curve: Curves.fastOutSlowIn, ); } - late Animation _valueIndicatorAnimation; + late CurvedAnimation _valueIndicatorAnimation; _SliderState _state; @override @@ -1897,6 +1897,12 @@ class _RenderValueIndicator extends RenderBox with RelayoutWhenSystemFontsChange Size computeDryLayout(BoxConstraints constraints) { return constraints.smallest; } + + @override + void dispose() { + _valueIndicatorAnimation.dispose(); + super.dispose(); + } } class _SliderDefaultsM2 extends SliderThemeData { diff --git a/packages/flutter/test/material/slider_test.dart b/packages/flutter/test/material/slider_test.dart index 97c07817f93d..ec3ef60ef873 100644 --- a/packages/flutter/test/material/slider_test.dart +++ b/packages/flutter/test/material/slider_test.dart @@ -13,6 +13,7 @@ import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter/src/physics/utils.dart' show nearEqual; import 'package:flutter_test/flutter_test.dart'; +import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart'; import '../widgets/semantics_tester.dart'; @@ -140,7 +141,10 @@ void main() { expect(log[0], const Offset(212.0, 300.0)); }); - testWidgets('Slider can move when tapped (LTR)', (WidgetTester tester) async { + testWidgets( + // TODO(polina-c): remove when fixed https://github.com/flutter/flutter/issues/145600 [leak-tracking-opt-in] + experimentalLeakTesting: LeakTesting.settings.withTracked(classes: ['CurvedAnimation']), + 'Slider can move when tapped (LTR)', (WidgetTester tester) async { final Key sliderKey = UniqueKey(); double value = 0.0; double? startValue;