SmartDateRangePicker class

A lightweight calendar-only date range picker.

This widget provides:

  • Start & end date selection
  • Max range length enforcement
  • Optional prevention of navigating to past months
  • Fully themeable calendar UI

❌ Does NOT include time selection ✅ Ideal for apps that only need date ranges

Emits a DateTimeRange once both start and end dates are valid.

Inheritance

Constructors

SmartDateRangePicker({Key? key, required DateTime minDate, required DateTime maxDate, required int maxRangeDays, required ValueChanged<DateTimeRange<DateTime>> onChanged, SmartDateTimeTheme theme = const SmartDateTimeTheme(), Color surfaceColour = Colors.white, bool allowPastMonths = true})
const

Properties

allowPastMonths bool
Whether navigating to months before the current month is allowed
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
maxDate DateTime
Maximum selectable date (inclusive)
final
maxRangeDays int
Maximum number of days allowed in the range (inclusive)
final
minDate DateTime
Minimum selectable date (inclusive)
final
onChanged ValueChanged<DateTimeRange<DateTime>>
Callback fired when a valid date range is selected
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
surfaceColour Color
Background color of the picker container
final
theme SmartDateTimeTheme
Visual theme configuration
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<SmartDateRangePicker>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited