diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist
index 8d4492f..9625e10 100644
--- a/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/example/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 9.0
+ 11.0
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index e206171..ee5706d 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -272,7 +272,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -350,7 +350,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -399,7 +399,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
diff --git a/example/pubspec.lock b/example/pubspec.lock
index f375b08..c47f500 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -7,7 +7,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.8.2"
+ version: "2.9.0"
boolean_selector:
dependency: transitive
description:
@@ -21,21 +21,14 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0"
- charcode:
- dependency: transitive
- description:
- name: charcode
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.3.1"
+ version: "1.2.1"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
collection:
dependency: transitive
description:
@@ -56,7 +49,7 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0"
+ version: "1.3.1"
flutter:
dependency: "direct main"
description: flutter
@@ -101,28 +94,28 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.11"
+ version: "0.12.12"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.4"
+ version: "0.1.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.7.0"
+ version: "1.8.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.1"
+ version: "1.8.2"
sky_engine:
dependency: transitive
description: flutter
@@ -134,7 +127,7 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.2"
+ version: "1.9.0"
stack_trace:
dependency: transitive
description:
@@ -155,21 +148,21 @@ packages:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.9"
+ version: "0.4.12"
vector_math:
dependency: transitive
description:
diff --git a/lib/src/date_time_picker.dart b/lib/src/date_time_picker.dart
index 9286abf..0c8be82 100644
--- a/lib/src/date_time_picker.dart
+++ b/lib/src/date_time_picker.dart
@@ -113,7 +113,7 @@ import 'package:intl/date_symbol_data_local.dart';
class DateTimePicker extends StatefulWidget {
DateTimePicker({
required this.child,
- this.weekDateBoxSize = 12,
+ this.weekDateBoxSize = 35,
this.monthDateBoxSize = 45,
this.header,
this.onTapDay,
@@ -139,8 +139,8 @@ class DateTimePicker extends StatefulWidget {
final bool pickTime;
final double? dateBoxSize;
final DateBoxShape dateBoxShape;
- final double? weekDateBoxSize;
- final double? monthDateBoxSize;
+ final double weekDateBoxSize;
+ final double monthDateBoxSize;
final DateTime? initialDate;
final List? markedDates;
final List? disabledDates;
@@ -153,6 +153,9 @@ class DateTimePicker extends StatefulWidget {
class _DateTimePickerState extends State {
late DateTimePickerController _dateTimePickerController;
+ final DraggableScrollableController _dragController =
+ DraggableScrollableController();
+
@override
void initState() {
super.initState();
@@ -182,6 +185,7 @@ class _DateTimePickerState extends State {
@override
void dispose() {
_dateTimePickerController.dispose();
+ _dragController.dispose();
super.dispose();
}
@@ -193,12 +197,14 @@ class _DateTimePickerState extends State {
RotatedBox(
quarterTurns: 2,
child: DraggableScrollableSheet(
- controller: _dateTimePickerController.getDragController(),
+ controller: _dragController,
snap: true,
- minChildSize: 0.26,
- initialChildSize: 0.26,
+ minChildSize: 0.2,
+ initialChildSize: 0.2,
maxChildSize: 0.68,
builder: (context, scrollController) {
+ double dragSize =
+ _dragController.isAttached ? _dragController.size : 0;
return RotatedBox(
quarterTurns: 2,
child: Stack(
@@ -223,20 +229,16 @@ class _DateTimePickerState extends State {
),
],
),
- child: _dateTimePickerController
- .getDragController()
- .size <
- 0.3
+ child: dragSize < 0.3
? WeekDateTimePickerSheet(
dateTimePickerController:
_dateTimePickerController,
- weekDateBoxSize: widget.weekDateBoxSize ?? 12,
+ weekDateBoxSize: widget.weekDateBoxSize,
)
: MonthDateTimePickerSheet(
dateTimePickerController:
_dateTimePickerController,
- monthDateBoxSize:
- widget.monthDateBoxSize ?? 45,
+ monthDateBoxSize: widget.monthDateBoxSize,
),
),
),
diff --git a/lib/src/utils/date_time_picker_controller.dart b/lib/src/utils/date_time_picker_controller.dart
index 188c705..8e45c83 100644
--- a/lib/src/utils/date_time_picker_controller.dart
+++ b/lib/src/utils/date_time_picker_controller.dart
@@ -17,8 +17,7 @@ class DateTimePickerController extends ChangeNotifier {
required this.selectedDate,
});
- final DraggableScrollableController _dragController =
- DraggableScrollableController();
+
final PageController _pageController = PageController(initialPage: 1);
final bool highlightToday;
@@ -41,7 +40,6 @@ class DateTimePickerController extends ChangeNotifier {
@override
void dispose() {
_pageController.dispose();
- _dragController.dispose();
super.dispose();
}
@@ -71,10 +69,6 @@ class DateTimePickerController extends ChangeNotifier {
}
}
- DraggableScrollableController getDragController() {
- return _dragController;
- }
-
PageController getPageController() {
return _pageController;
}
diff --git a/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker.dart b/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker.dart
index b221002..aea0bec 100644
--- a/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker.dart
+++ b/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker.dart
@@ -106,8 +106,8 @@ class MonthDateTimePicker extends StatelessWidget {
borderRadius:
_determineBorderRadius(dateTimePickerController),
),
- height: 45,
- width: 45,
+ height: monthDateBoxSize,
+ width: monthDateBoxSize,
child: Stack(
children: [
Center(
diff --git a/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker_sheet.dart b/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker_sheet.dart
index 0d09b9e..5c18918 100644
--- a/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker_sheet.dart
+++ b/lib/src/widgets/month_date_time_picker.dart/month_date_time_picker_sheet.dart
@@ -37,7 +37,7 @@ class MonthDateTimePickerSheet extends StatelessWidget {
),
SizedBox(
width: MediaQuery.of(context).size.width,
- height: 300,
+ height: MediaQuery.of(context).size.height * 0.33,
child: PageView(
controller: dateTimePickerController.getPageController(),
onPageChanged: (i) {
@@ -70,7 +70,7 @@ class MonthDateTimePickerSheet extends StatelessWidget {
dateTimePickerController.browsingDate.year - 1, 12, 1)
: DateTime(dateTimePickerController.browsingDate.year,
dateTimePickerController.browsingDate.month - 1, 1),
- monthDateBoxSize: monthDateBoxSize,
+ monthDateBoxSize: monthDateBoxSize,
dateTimePickerController: dateTimePickerController),
MonthDateTimePicker(
date: DateTime(
@@ -81,17 +81,16 @@ class MonthDateTimePickerSheet extends StatelessWidget {
dateTimePickerController: dateTimePickerController,
monthDateBoxSize: monthDateBoxSize),
MonthDateTimePicker(
- date: dateTimePickerController.browsingDate.month == 12
- ? DateTime(
- dateTimePickerController.browsingDate.year + 1,
- 1,
- 1,
- )
- : DateTime(dateTimePickerController.browsingDate.year,
- dateTimePickerController.browsingDate.month + 1, 1),
- dateTimePickerController: dateTimePickerController,
- monthDateBoxSize: monthDateBoxSize
- ),
+ date: dateTimePickerController.browsingDate.month == 12
+ ? DateTime(
+ dateTimePickerController.browsingDate.year + 1,
+ 1,
+ 1,
+ )
+ : DateTime(dateTimePickerController.browsingDate.year,
+ dateTimePickerController.browsingDate.month + 1, 1),
+ dateTimePickerController: dateTimePickerController,
+ monthDateBoxSize: monthDateBoxSize),
],
),
),
diff --git a/lib/src/widgets/week_date_time_picker/week_date_time_picker.dart b/lib/src/widgets/week_date_time_picker/week_date_time_picker.dart
index 793980f..f186cce 100644
--- a/lib/src/widgets/week_date_time_picker/week_date_time_picker.dart
+++ b/lib/src/widgets/week_date_time_picker/week_date_time_picker.dart
@@ -91,7 +91,10 @@ class WeekDateTimePicker extends StatelessWidget {
);
});
} else {
- timeOfDay = TimeOfDay(hour: 0, minute: 0);
+ timeOfDay = TimeOfDay(
+ hour: 0,
+ minute: 0,
+ );
}
DateTime selectedDateTime = DateTime(
@@ -120,8 +123,8 @@ class WeekDateTimePicker extends StatelessWidget {
),
const Spacer(),
Container(
- height: 35,
- width: 35,
+ height: weekDateBoxSize,
+ width: weekDateBoxSize,
decoration: BoxDecoration(
color: calendarColors['backgroundColor'],
borderRadius:
@@ -142,8 +145,8 @@ class WeekDateTimePicker extends StatelessWidget {
Align(
alignment: Alignment.bottomRight,
child: Container(
- width: weekDateBoxSize,
- height: weekDateBoxSize,
+ width: weekDateBoxSize / 3,
+ height: weekDateBoxSize / 3,
decoration: BoxDecoration(
color: Theme.of(context).indicatorColor,
borderRadius:
@@ -235,7 +238,7 @@ class WeekDateTimePicker extends StatelessWidget {
case DateBoxShape.rectangle:
return BorderRadius.zero;
case DateBoxShape.roundedRectangle:
- return BorderRadius.circular(weekDateBoxSize / 1.5);
+ return BorderRadius.circular(weekDateBoxSize / 4.5);
}
}
}