Skip to content

Commit 02fb95e

Browse files
committed
6.7.0
1 parent 09b2553 commit 02fb95e

File tree

11 files changed

+48
-17
lines changed

11 files changed

+48
-17
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 6.7.0 - 2025-11-08
2+
- Added `verticalScrolling` to `PickerDialogSettings`: defines if the year/month grid will scroll on vertical or horizontal direction.
3+
- changed `PickerHeaderSettings` `previousIcon` and `nextIcon` to nullable.
4+
- Mini fix on portrait header size.
5+
16
## 6.6.0 - 2025-10-27
27
- Added `gridPadding` to `PickerDialogSettings`: defines the padding between the grid and the dialog border.
38
- Removed unwanted scrollbar from grid [#122](https://github.com/Macacoazul01/month_picker_dialog/issues/122)

example/ios/Flutter/flutter_export_environment.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/bin/sh
22
# This is a generated file; do not edit or check into version control.
3-
export "FLUTTER_ROOT=C:\flutter"
4-
export "FLUTTER_APPLICATION_PATH=C:\Users\gian_\Desktop\month_picker_dialog\example"
3+
export "FLUTTER_ROOT=/Users/gian/flutter"
4+
export "FLUTTER_APPLICATION_PATH=/Users/gian/Desktop/month_picker_dialog/example"
55
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
6-
export "FLUTTER_TARGET=lib\main.dart"
6+
export "FLUTTER_TARGET=lib/main.dart"
77
export "FLUTTER_BUILD_DIR=build"
88
export "FLUTTER_BUILD_NAME=1.0.0"
99
export "FLUTTER_BUILD_NUMBER=1"

example/lib/main.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,12 @@ class _MyAppState extends State<MyApp> {
9494
return null;
9595
},
9696
monthPickerDialogSettings: MonthPickerDialogSettings(
97-
// dialogSettings: const PickerDialogSettings(blockScrolling: false),
97+
dialogSettings: const PickerDialogSettings(verticalScrolling: false),
9898
headerSettings: const PickerHeaderSettings(
99-
headerCurrentPageTextStyle: TextStyle(fontSize: 14),
99+
headerCurrentPageTextStyle:
100+
TextStyle(fontSize: 14, color: Colors.black),
100101
headerSelectedIntervalTextStyle: TextStyle(fontSize: 16),
102+
headerIconsColor: Colors.white,
101103
),
102104
actionBarSettings: PickerActionBarSettings(
103105
confirmWidget: Text(

lib/src/helpers/settings/dialog_settings.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class PickerDialogSettings {
2020
this.insetPadding,
2121
this.yearsPerPage = 12,
2222
this.gridPadding = const EdgeInsets.all(8),
23+
this.verticalScrolling = true,
2324
}) : assert(forceSelectedDate == dismissible || !forceSelectedDate,
2425
'forceSelectedDate can only be used with dismissible = true');
2526

@@ -108,6 +109,11 @@ class PickerDialogSettings {
108109
/// default: `12`
109110
final int yearsPerPage;
110111

112+
/// Defines if the year/month grid will scroll on vertical or horizontal direction.
113+
///
114+
/// default: `true`
115+
final bool verticalScrolling;
116+
111117
PickerDialogSettings copyWith({
112118
int? scrollAnimationMilliseconds,
113119
double? textScaleFactor,
@@ -126,6 +132,7 @@ class PickerDialogSettings {
126132
EdgeInsets? insetPadding,
127133
EdgeInsets? gridPadding,
128134
int? yearsPerPage,
135+
bool? verticalScrolling,
129136
}) {
130137
return PickerDialogSettings(
131138
scrollAnimationMilliseconds:
@@ -149,6 +156,7 @@ class PickerDialogSettings {
149156
insetPadding: insetPadding ?? this.insetPadding,
150157
gridPadding: gridPadding ?? this.gridPadding,
151158
yearsPerPage: yearsPerPage ?? this.yearsPerPage,
159+
verticalScrolling: verticalScrolling ?? this.verticalScrolling,
152160
);
153161
}
154162
}

lib/src/helpers/settings/header_settings.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ class PickerHeaderSettings {
55
const PickerHeaderSettings({
66
this.hideHeaderRow = false,
77
this.hideHeaderArrows = false,
8-
this.previousIcon = Icons.keyboard_arrow_up,
9-
this.nextIcon = Icons.keyboard_arrow_down,
8+
this.previousIcon,
9+
this.nextIcon,
1010
this.headerIconsSize,
1111
this.headerIconsColor,
1212
this.headerBackgroundColor,
@@ -31,12 +31,12 @@ class PickerHeaderSettings {
3131
/// The icon that will make the calendar to go back one page when clicked.
3232
///
3333
/// default: `Icons.keyboard_arrow_up`
34-
final IconData previousIcon;
34+
final IconData? previousIcon;
3535

3636
/// The icon that will make the calendar to go to the next page when clicked.
3737
///
3838
/// default: `Icons.keyboard_arrow_up`
39-
final IconData nextIcon;
39+
final IconData? nextIcon;
4040

4141
/// The Size of the header Icons.
4242
///

lib/src/month_picker_widgets/header/header.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ class PickerHeader extends StatelessWidget {
2222
@override
2323
Widget build(BuildContext context) {
2424
return Container(
25-
width: portrait
26-
? controller.monthPickerDialogSettings.dialogSettings.customWidth
27-
: null,
2825
decoration: BoxDecoration(
2926
color: controller.monthPickerDialogSettings.headerSettings
3027
.headerBackgroundColor ??

lib/src/month_picker_widgets/header/header_arrows.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class HeaderArrows extends StatelessWidget {
1313
this.previousIcon,
1414
this.nextIcon,
1515
required this.arrowAlpha,
16+
required this.verticalScrolling,
1617
});
1718
final Color? arrowcolors;
1819
final double? arrowSize;
@@ -21,14 +22,19 @@ class HeaderArrows extends StatelessWidget {
2122
final bool upState, downState;
2223
final IconData? previousIcon;
2324
final IconData? nextIcon;
25+
final bool verticalScrolling;
2426

2527
@override
2628
Widget build(BuildContext context) {
2729
return Row(
30+
mainAxisSize: MainAxisSize.min,
2831
children: <Widget>[
2932
IconButton(
3033
icon: Icon(
31-
previousIcon ?? Icons.keyboard_arrow_up,
34+
previousIcon ??
35+
(verticalScrolling
36+
? Icons.keyboard_arrow_up
37+
: Icons.keyboard_arrow_left),
3238
color: upState
3339
? arrowcolors
3440
: arrowcolors!.withValues(alpha: arrowAlpha),
@@ -38,7 +44,10 @@ class HeaderArrows extends StatelessWidget {
3844
),
3945
IconButton(
4046
icon: Icon(
41-
nextIcon ?? Icons.keyboard_arrow_down,
47+
nextIcon ??
48+
(verticalScrolling
49+
? Icons.keyboard_arrow_down
50+
: Icons.keyboard_arrow_right),
4251
color: downState
4352
? arrowcolors
4453
: arrowcolors!.withValues(alpha: arrowAlpha),

lib/src/month_picker_widgets/header/header_row.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ class HeaderRow extends StatelessWidget {
7777
.monthPickerDialogSettings.headerSettings.nextIcon,
7878
arrowAlpha: controller
7979
.monthPickerDialogSettings.headerSettings.arrowAlpha,
80+
verticalScrolling: controller
81+
.monthPickerDialogSettings.dialogSettings.verticalScrolling,
8082
),
8183
]
8284
: <Widget>[
@@ -118,6 +120,8 @@ class HeaderRow extends StatelessWidget {
118120
.monthPickerDialogSettings.headerSettings.nextIcon,
119121
arrowAlpha: controller
120122
.monthPickerDialogSettings.headerSettings.arrowAlpha,
123+
verticalScrolling: controller
124+
.monthPickerDialogSettings.dialogSettings.verticalScrolling,
121125
),
122126
];
123127
return portrait

lib/src/month_selector/month_selector.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ class MonthSelectorState extends State<MonthSelector> {
2424
Widget build(BuildContext context) {
2525
return PageView.builder(
2626
controller: widget.controller.monthPageController,
27-
scrollDirection: Axis.vertical,
27+
scrollDirection: widget.controller.monthPickerDialogSettings
28+
.dialogSettings.verticalScrolling
29+
? Axis.vertical
30+
: Axis.horizontal,
2831
physics: widget.controller.monthPickerDialogSettings.dialogSettings
2932
.blockScrolling
3033
? const NeverScrollableScrollPhysics()

lib/src/year_selector/year_selector.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ class YearSelectorState extends State<YearSelector> {
5050
Widget build(BuildContext context) {
5151
return PageView.builder(
5252
controller: widget.controller.yearPageController,
53-
scrollDirection: Axis.vertical,
53+
scrollDirection: widget.controller.monthPickerDialogSettings
54+
.dialogSettings.verticalScrolling
55+
? Axis.vertical
56+
: Axis.horizontal,
5457
physics: widget.controller.monthPickerDialogSettings.dialogSettings
5558
.blockScrolling
5659
? const NeverScrollableScrollPhysics()

0 commit comments

Comments
 (0)