Unverified Commit 1a3201bc authored by LongCatIsLooong's avatar LongCatIsLooong Committed by GitHub

CupertinoDatePicker initialDateTime accounts for minuteInterval (#30862)

initialDateTime should account for minuteInterval
parent b8a1870d
......@@ -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(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment