flutter_persian_date_picker 0.0.2
flutter_persian_date_picker: ^0.0.2 copied to clipboard
DatePicker with full support of the Persian calendar with highly customizable and responsive UI.
Flutter Persian Date Picker #
Provides full support of the Persian calendar with highly customizable and responsive UI. The performance is quick enough to run smoothly on variety of devices including low-end phones.

π Step by step guide: #
1- Install with one of these ways:
dependencies:
flutter_persian_date_picker: ^0.0.2
or
$ flutter pub add flutter_persian_date_picker
2- Import to your Dart code:
import 'package:flutter_persian_date_picker/date_picker.dart';
import 'package:shamsi_date/shamsi_date.dart';
3- Simply use PersianDatePicker as any widget child:
PersianDatePicker(
onSubmitDate: (selectedDate) {
},
onEmptyDateSubmit: () {
},
),
4- Assign 2 required variables by following the document bellow.
βοΈ Quick Document: #
/// This gets called when user selects a date and taps the Submit button.
/// use selectedDate.formatter to access all details of the user's selected date
///
/// It is recommended to call [pop] if you are using [PersianDatePicker] inside a BottomSheet / Dialog
final void Function(Jalali selectedDate) onSubmitDate;
/// This gets called when user has no selected date and taps the Submit button.
///
/// It is recommended to show a toast as a hint for the user
final void Function() onEmptyDateSubmit;
/// Simply pass a date if you wish to have a date to be selected initially. This is pretty useful
/// for situations where user has saved a date in your state management
final Jalali? chosenDate;
/// Leave this empty if you want your [PersianDatePicker] to contain the whole width of the screen
///
/// If there is a [Padding] widget as parent of this widget and you want it to have a desired width too,
/// simply make a sum of width and the padding. For example:
/// int desiredWidth = 400;
/// int horizontalPadding = 10;
/// widthWithPadding = desiredWidth + (horizontalPadding * 2)
///
/// If you only want a desired width and there are no [Padding] as it's parent, just pass the width
///
/// If there is [Padding] as it's parent and you want it to take the whole width,
/// make a sum of your padding and MediaQuery.of(context).size.width
final double? widthWithPadding;
/// TextStyle for week titles.
final TextStyle weekTitlesTextStyle;
/// ButtonStyle for header navigator buttons
final ButtonStyle headerButtonsStyle;
/// Child widget of header right button
final Widget headerPreviousButtonChild;
/// Child widget of header left button
final Widget headerNextButtonChild;
/// TextStyle for month display text on top (bold text is recommended)
final TextStyle headerMonthDisplayTextStyle;
/// The Color for days background
final Color dateBackgroundColor;
/// TextStyle for day numbers
final TextStyle dateTextStyle;
/// The visibility type and color for selected date
final SelectedDateStyle selectedDateStyle;
/// ButtonStyle for the button in the bottom
final ButtonStyle submitButtonStyle;
/// Child widget of submit button
final Widget submitButtonChild;