CupertinoDatePicker initialDateTime accounts for minuteInterval (#30862)
initialDateTime should account for minuteInterval
This commit is contained in:
parent
b8a1870d92
commit
1a3201bc74
@ -540,7 +540,7 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
|
||||
|
||||
Widget _buildMinutePicker(double offAxisFraction, TransitionBuilder itemPositioningBuilder) {
|
||||
return CupertinoPicker(
|
||||
scrollController: FixedExtentScrollController(initialItem: selectedMinute),
|
||||
scrollController: FixedExtentScrollController(initialItem: selectedMinute ~/ widget.minuteInterval),
|
||||
offAxisFraction: offAxisFraction,
|
||||
itemExtent: _kItemExtent,
|
||||
useMagnifier: _kUseMagnifier,
|
||||
|
@ -266,6 +266,31 @@ void main() {
|
||||
expect(picker.initialDateTime, isNotNull);
|
||||
});
|
||||
|
||||
testWidgets('initial date honors minuteInterval', (WidgetTester tester) async {
|
||||
DateTime newDateTime;
|
||||
await tester.pumpWidget(
|
||||
CupertinoApp(
|
||||
home: SizedBox(
|
||||
width: 400,
|
||||
height: 400,
|
||||
child: CupertinoDatePicker(
|
||||
onDateTimeChanged: (DateTime d) => newDateTime = d,
|
||||
initialDateTime: DateTime(2018, 10, 10, 10, 3),
|
||||
minuteInterval: 3,
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Drag the minute picker to the next slot (03 -> 06).
|
||||
// The `initialDateTime` and the `minuteInterval` values are specifically choosen
|
||||
// so that `find.text` finds exactly one widget.
|
||||
await tester.drag(find.text('03'), _kRowOffset);
|
||||
await tester.pump();
|
||||
|
||||
expect(newDateTime.minute, 6);
|
||||
});
|
||||
|
||||
testWidgets('changing initialDateTime after first build does not do anything', (WidgetTester tester) async {
|
||||
DateTime selectedDateTime;
|
||||
await tester.pumpWidget(
|
||||
|
Loading…
x
Reference in New Issue
Block a user