65 lines
1.5 KiB
Dart
65 lines
1.5 KiB
Dart
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
|
|
|
class CustomPicker extends CommonPickerModel {
|
|
String digits(int value, int length) {
|
|
return '$value'.padLeft(length, "0");
|
|
}
|
|
|
|
CustomPicker({DateTime currentTime, LocaleType locale}) : super(locale: locale) {
|
|
this.currentTime = currentTime ?? DateTime.now();
|
|
this.setLeftIndex(this.currentTime.hour);
|
|
this.setMiddleIndex(this.currentTime.minute);
|
|
this.setRightIndex(this.currentTime.second);
|
|
}
|
|
|
|
@override
|
|
String leftStringAtIndex(int index) {
|
|
if (index >= 0 && index < 24) {
|
|
return this.digits(index, 2);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@override
|
|
String middleStringAtIndex(int index) {
|
|
if (index >= 0 && index < 60) {
|
|
return this.digits(index, 2);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@override
|
|
String rightStringAtIndex(int index) {
|
|
if (index >= 0 && index < 60) {
|
|
return this.digits(index, 2);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@override
|
|
String leftDivider() {
|
|
return "|";
|
|
}
|
|
|
|
@override
|
|
String rightDivider() {
|
|
return "|";
|
|
}
|
|
|
|
@override
|
|
List<int> layoutProportions() {
|
|
return [1, 2, 1];
|
|
}
|
|
|
|
@override
|
|
DateTime finalTime() {
|
|
return currentTime.isUtc
|
|
? DateTime.utc(currentTime.year, currentTime.month, currentTime.day,
|
|
this.currentLeftIndex(), this.currentMiddleIndex(), this.currentRightIndex())
|
|
: DateTime(currentTime.year, currentTime.month, currentTime.day, this.currentLeftIndex(),
|
|
this.currentMiddleIndex(), this.currentRightIndex());
|
|
}
|
|
} |