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 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()); } }