mirror of
https://github.com/flutter/flutter
synced 2024-07-16 10:29:14 +00:00
Fix vertical Stepper
draws connector on the last step (#145703)
fixes [Vertical stepper shows line after last step](https://github.com/flutter/flutter/issues/144376) ### Code sample <details> <summary>expand to view the code sample</summary> ```dart import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( body: Center( child: Stepper( currentStep: 1, steps: const <Step>[ Step( title: Text("Step 1"), content: Text("Content 1"), ), Step( title: Text("Step 2"), content: Text("Content 2"), ), ], ), ), ), ); } } ``` </details> ### Before ![Screenshot 2024-03-25 at 18 36 32](https://github.com/flutter/flutter/assets/48603081/af859a88-7ec8-4432-8eec-f8eb72706b57) ### After ![Screenshot 2024-03-25 at 18 36 24](https://github.com/flutter/flutter/assets/48603081/994325b2-4bd4-44ef-9473-245d3492faf7)
This commit is contained in:
parent
330a2ca2ab
commit
5e19b33534
|
@ -791,7 +791,7 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin {
|
|||
width: _stepIconWidth ?? _kStepSize,
|
||||
child: Center(
|
||||
child: SizedBox(
|
||||
width: widget.connectorThickness ?? 1.0,
|
||||
width: !_isLast(index) ? (widget.connectorThickness ?? 1.0) : 0.0,
|
||||
child: Container(
|
||||
color: _connectorColor(widget.steps[index].isActive),
|
||||
),
|
||||
|
|
|
@ -1689,6 +1689,37 @@ testWidgets('Stepper custom indexed controls test', (WidgetTester tester) async
|
|||
expect(mergedStyle.gradient, stepStyle.gradient);
|
||||
expect(mergedStyle.indexStyle, stepStyle.indexStyle);
|
||||
});
|
||||
|
||||
// This is a regression test for https://github.com/flutter/flutter/issues/144376.
|
||||
testWidgets('Vertical Stepper does not draw connector on the last step', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: Scaffold(
|
||||
body: Center(
|
||||
child: Stepper(
|
||||
currentStep: 1,
|
||||
steps: const <Step>[
|
||||
Step(
|
||||
title: Text('step1'),
|
||||
content: Text('step1 content'),
|
||||
),
|
||||
Step(
|
||||
title: Text('step2'),
|
||||
content: Text('step2 content'),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
final SizedBox lastConnector = tester.widget<SizedBox>(
|
||||
find.descendant(of: find.byType(PositionedDirectional),
|
||||
matching: find.byType(SizedBox).last,
|
||||
));
|
||||
expect(lastConnector.width, equals(0.0));
|
||||
});
|
||||
}
|
||||
|
||||
class _TappableColorWidget extends StatefulWidget {
|
||||
|
|
Loading…
Reference in a new issue