diff --git a/packages/flutter/lib/src/material/slider.dart b/packages/flutter/lib/src/material/slider.dart index 1014bb1eb8f..c8a4099c170 100644 --- a/packages/flutter/lib/src/material/slider.dart +++ b/packages/flutter/lib/src/material/slider.dart @@ -381,8 +381,16 @@ class Slider extends StatefulWidget { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties.add(DoubleProperty('value', value)); + properties.add(ObjectFlagProperty>('onChanged', onChanged, ifNull: 'disabled')); + properties.add(ObjectFlagProperty>.has('onChangeStart', onChangeStart)); + properties.add(ObjectFlagProperty>.has('onChangeEnd', onChangeEnd)); properties.add(DoubleProperty('min', min)); properties.add(DoubleProperty('max', max)); + properties.add(IntProperty('divisions', divisions)); + properties.add(StringProperty('label', label)); + properties.add(ColorProperty('activeColor', activeColor)); + properties.add(ColorProperty('inactiveColor', inactiveColor)); + properties.add(ObjectFlagProperty>.has('semanticFormatterCallback', semanticFormatterCallback)); } } diff --git a/packages/flutter/test/material/slider_test.dart b/packages/flutter/test/material/slider_test.dart index 349b3a7f2bc..37ed4ced319 100644 --- a/packages/flutter/test/material/slider_test.dart +++ b/packages/flutter/test/material/slider_test.dart @@ -1547,4 +1547,38 @@ void main() { final RenderBox renderObject = tester.renderObject(find.byType(Slider)); expect(renderObject.size.height, 200); }); + + testWidgets( + 'Slider implements debugFillProperties', (WidgetTester tester) async { + final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); + + const Slider( + activeColor: Colors.blue, + divisions: 10, + inactiveColor: Colors.grey, + label: 'Set a value', + max: 100.0, + min: 0.0, + onChanged: null, + onChangeEnd: null, + onChangeStart: null, + semanticFormatterCallback: null, + value: 50.0, + ).debugFillProperties(builder); + + final List description = builder.properties + .where((DiagnosticsNode node) => !node.isFiltered(DiagnosticLevel.info)) + .map((DiagnosticsNode node) => node.toString()).toList(); + + expect(description, [ + 'value: 50.0', + 'disabled', + 'min: 0.0', + 'max: 100.0', + 'divisions: 10', + 'label: "Set a value"', + 'activeColor: MaterialColor(primary value: Color(0xff2196f3))', + 'inactiveColor: MaterialColor(primary value: Color(0xff9e9e9e))', + ]); + }); }