mirror of
https://github.com/Iconica-Development/flutter_date_time_picker.git
synced 2025-05-18 18:33:49 +02:00
feat: add more spacing and fix localization
This commit is contained in:
parent
5c60109348
commit
5b08667ec9
9 changed files with 89 additions and 66 deletions
|
@ -1,7 +1,14 @@
|
|||
## 3.3.0
|
||||
|
||||
- Fixed localization bug for the overlay variant of the datetimepicker
|
||||
- Added option to modify padding around the month name in the calendar of the datetimepicker
|
||||
|
||||
## 3.2.0
|
||||
|
||||
- Added call back for whenever the user navigates to a different month
|
||||
|
||||
## 3.1.0
|
||||
|
||||
- Add compatibility with flutter 3.10
|
||||
|
||||
## 3.0.0
|
||||
|
|
|
@ -37,10 +37,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.17.1"
|
||||
version: "1.17.2"
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -68,15 +68,15 @@ packages:
|
|||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "3.2.0"
|
||||
version: "3.3.0"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
|
||||
sha256: "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.0.2"
|
||||
flutter_localizations:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
|
@ -91,42 +91,34 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
|
||||
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.18.0"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.7"
|
||||
version: "0.18.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
|
||||
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.1.1"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
|
||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.15"
|
||||
version: "0.12.16"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "0.5.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -152,10 +144,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
||||
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
version: "1.10.0"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -192,10 +184,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
version: "0.6.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -204,6 +196,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.4-beta"
|
||||
sdks:
|
||||
dart: ">=3.0.0-0 <4.0.0"
|
||||
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||
flutter: ">=2.0.0"
|
||||
|
|
|
@ -174,6 +174,8 @@ class _DragDownDateTimePickerState extends State<DragDownDateTimePicker> {
|
|||
_dateTimePickerController,
|
||||
monthDateBoxSize: widget
|
||||
.dateTimePickerTheme.monthDateBoxSize,
|
||||
monthDatePadding: widget
|
||||
.dateTimePickerTheme.monthDatePadding,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -41,6 +41,7 @@ class DateTimePickerTheme {
|
|||
this.barTheme = const DateTimePickerBarTheme(),
|
||||
this.monthWeekDayHeaders = false,
|
||||
this.calenderPadding = const EdgeInsets.all(8.0),
|
||||
this.monthDatePadding = const EdgeInsets.symmetric(vertical: 12.0),
|
||||
});
|
||||
|
||||
/// enum to define a shape dor the date. use [DateBoxShape.circle].
|
||||
|
@ -68,6 +69,9 @@ class DateTimePickerTheme {
|
|||
/// Size of date box in a month view.
|
||||
final double monthDateBoxSize;
|
||||
|
||||
/// The Padding around the month name in the month view.
|
||||
final EdgeInsetsGeometry monthDatePadding;
|
||||
|
||||
/// The color used for a indicator for a marked date.
|
||||
final Color? markedIndicatorColor;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:flutter_date_time_picker/src/models/date_time_picker_theme.dart'
|
|||
import 'package:flutter_date_time_picker/src/utils/date_time_picker_controller.dart';
|
||||
import 'package:flutter_date_time_picker/src/models/date_constraint.dart';
|
||||
import 'package:flutter_date_time_picker/src/widgets/overlay_date_time_picker/overlay.dart';
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
|
||||
class OverlayDateTimePicker extends StatefulWidget {
|
||||
const OverlayDateTimePicker({
|
||||
|
@ -104,11 +105,15 @@ class _OverlayDateTimePickerState extends State<OverlayDateTimePicker> {
|
|||
);
|
||||
|
||||
late bool _isShown = widget.isShown;
|
||||
late final DateTimePickerController _dateTimePickerController;
|
||||
|
||||
_DropdownRoute? _dropdownRoute;
|
||||
|
||||
late final DateTimePickerController _dateTimePickerController =
|
||||
DateTimePickerController(
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
initializeDateFormatting();
|
||||
_dateTimePickerController = DateTimePickerController(
|
||||
highlightToday: widget.highlightToday,
|
||||
alwaysUse24HourFormat: widget.alwaysUse24HourFormat,
|
||||
pickTime: widget.pickTime,
|
||||
|
@ -125,6 +130,7 @@ class _OverlayDateTimePickerState extends State<OverlayDateTimePicker> {
|
|||
browsingDate: widget.initialDate ?? DateTime.now(),
|
||||
selectedDate: widget.initialDate ?? DateTime.now(),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
|
|
|
@ -12,39 +12,41 @@ class MonthDateTimePickerSheet extends StatelessWidget {
|
|||
const MonthDateTimePickerSheet({
|
||||
required this.dateTimePickerController,
|
||||
required this.monthDateBoxSize,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
required this.monthDatePadding,
|
||||
super.key,
|
||||
});
|
||||
|
||||
final DateTimePickerController dateTimePickerController;
|
||||
final double monthDateBoxSize;
|
||||
final EdgeInsetsGeometry monthDatePadding;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var theme = dateTimePickerController.theme;
|
||||
var size = MediaQuery.of(context).size;
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
if (dateTimePickerController.header != null)
|
||||
if (dateTimePickerController.header != null) ...[
|
||||
Align(
|
||||
alignment: Alignment.topCenter,
|
||||
child: dateTimePickerController.header!,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Text(
|
||||
],
|
||||
Padding(
|
||||
padding: monthDatePadding,
|
||||
child: Text(
|
||||
// use localization to get the month name
|
||||
DateFormat.yMMMM(Localizations.localeOf(context).toString()).format(
|
||||
dateTimePickerController.browsingDate,
|
||||
),
|
||||
style: theme.baseTheme.textStyle!.copyWith(fontSize: 25),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height: MediaQuery.of(context).size.height * 0.33 +
|
||||
((theme.monthWeekDayHeaders)
|
||||
? MediaQuery.of(context).size.height * 0.04
|
||||
: 0),
|
||||
width: size.width,
|
||||
height: size.height * 0.33 +
|
||||
((theme.monthWeekDayHeaders) ? size.height * 0.04 : 0),
|
||||
child: PageView(
|
||||
controller: dateTimePickerController.pageController,
|
||||
onPageChanged: (i) {
|
||||
|
|
|
@ -53,7 +53,8 @@ class DatePicker extends StatelessWidget {
|
|||
padding: const EdgeInsets.only(top: 8),
|
||||
child: Row(
|
||||
children: List.generate(DateTime.daysPerWeek, (index) {
|
||||
DateFormat dateFormatter = DateFormat("EE");
|
||||
DateFormat dateFormatter = DateFormat(
|
||||
"EE", Localizations.localeOf(context).toLanguageTag());
|
||||
var date = dateFormatter.format(DateTime(2022, 11, index));
|
||||
if (theme.dateFormatWeekday != null) {
|
||||
date = theme.dateFormatWeekday!
|
||||
|
|
|
@ -71,7 +71,9 @@ class _OverlayDateTimeContentState extends State<OverlayDateTimeContent> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var monthText = DateFormat.yMMMM().format(
|
||||
var monthText =
|
||||
DateFormat.yMMMM(Localizations.localeOf(context).toLanguageTag())
|
||||
.format(
|
||||
widget.controller.browsingDate,
|
||||
);
|
||||
if (widget.theme.dateFormatMonth != null) {
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
name: flutter_date_time_picker
|
||||
description: A Flutter package for date and time picker.
|
||||
version: 3.2.0
|
||||
homepage: https://iconica.nl/
|
||||
version: 3.3.0
|
||||
|
||||
environment:
|
||||
sdk: ">=2.17.6 <3.0.0"
|
||||
sdk: ">=3.0.0 <4.0.0"
|
||||
flutter: ">=2.0.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
intl: ^0.18.0
|
||||
intl: any
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
Loading…
Reference in a new issue