0 purchases
date range form field
date_range_form_field #
A Flutter package for adding a DateRange widget into a form.
A date picker UX is provided by showDateRangePicker.
The widget will accept InputDecoration or use the default from the app's theme.
Additionally, the widget will accept a date format, defaulting to MM-dd-yyyy.
Usage #
This widget should be used like any other FormField within a form.
It is important to note that the firstDate and lastDate properties correspond to the first and last valid dates.
This widget must have a MaterialWidget ancestor, such as a MaterialApp
Example #
import 'package:date_range_form_field/date_range_form_field.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: MyFormField(),
);
}
}
class MyFormField extends StatefulWidget {
@override
_MyFormFieldState createState() => _MyFormFieldState();
}
GlobalKey<FormState> myFormKey = new GlobalKey();
class _MyFormFieldState extends State<MyFormField> {
DateTimeRange? myDateRange;
void _submitForm() {
final FormState? form = myFormKey.currentState;
form!.save();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Date Range Form Example"),
),
body: SafeArea(
child: Form(
key: myFormKey,
child: Column(
children: [
SafeArea(
child: DateRangeField(
enabled: true,
initialValue: DateTimeRange(
start: DateTime.now(),
end: DateTime.now().add(Duration(days: 5))),
decoration: InputDecoration(
labelText: 'Date Range',
prefixIcon: Icon(Icons.date_range),
hintText: 'Please select a start and end date',
border: OutlineInputBorder(),
),
validator: (value) {
if (value!.start.isBefore(DateTime.now())) {
return 'Please enter a later start date';
}
return null;
},
onSaved: (value) {
setState(() {
myDateRange = value!;
});
}),
),
ElevatedButton(
child: Text('Submit'),
onPressed: _submitForm,
),
if (myDateRange != null)
Text("Saved value is: ${myDateRange.toString()}")
],
),
),
),
);
}
}
copied to clipboard
Contributing #
Contributions are welcome as pull requests to the github repo.
Please open issues on the repo for feature requests or bug reports.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.