customizable_date_picker 0.0.3 copy "customizable_date_picker: ^0.0.3" to clipboard
customizable_date_picker: ^0.0.3 copied to clipboard

A Customizable_date_picker

customizable_date_picker #

A Customizable_date_picker

Features #

  • Fully Customizable with Custom Builders.
  • Can Attach dynamic Data to each day.
  • Default Version, Ready to Use.

Getting started #

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  customizable_date_picker: "^0.0.3"

In your library add the following import:

import 'package:customizable_date_picker/customizable_date_picker.dart';

For help getting started with Flutter, view the online documentation.

Attributes #

CustomDatePicker #

attribute type description
controller CustomDatePickerController Widget controller
activeDayTextStyle TextStyle normal day color
hiddenDayTextStyle TextStyle hidden day color
headerTextStyle TextStyle TextStyle of days abbreviations
selectedDaysColor Color color of selected day
headerBackgroundColor Color Color of the Header
daysOfWeek List Days abbreviations
background Widget Background widget,could be anything, Image,Animations,Colors...
dayItemBuilder Widget Function(CustomDay day, int index) day item builder
monthTitleBuilder Widget Function(DateTime date) month Title Item Builder

Warning:

One you chose to use a builder, most other styling attributes will be ignored.

CustomDatePickerController #

attribute type description
start DateTime first month in the calendar
end DateTime last month in the calendar
generateCustomDay CustomDay Function(DateTime firstDate, DateTime lastDate) generate dynamic for each Day

Simple Use #

CustomDatePickerController _controller = new CustomDatePickerController();
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Padding(
        padding: const EdgeInsets.all(25.0),
        child: Card(
          child: CustomDatePicker(
            _controller
          ),
        ),
      ),
    );
  }

You can find the complete example in the Example project.

Using Custom Builder #

You can specify how every part of the Widget should be built:

 Widget build(BuildContext context) {
    return Container(
      child: Padding(
        padding: const EdgeInsets.all(25.0),
        child: Card(
          child: CustomDatePicker(
              _controller,
            dayItemBuilder: dayItemBuilder,
            monthTitleBuilder: monthTitleBuilder,
            headerBackgroundColor: Colors.red,
            headerTextStyle: TextStyle(color: Colors.white,fontWeight: FontWeight.w700),
          ),
        ),
      ),
    );
  }

You can find the complete example in the Example project.

 void _showPopUp() {
     showDialog(
       context: context,
       builder: (BuildContext context) {
         // return object of type Dialog
         return AlertDialog(
           title: new Text("Date Picker"),
           content: Card(
             child: CustomDatePicker(
               _controller,
               dayItemBuilder: dayItemBuilder,
               monthTitleBuilder: monthTitleBuilder,
               headerBackgroundColor: Colors.black,
               headerTextStyle: TextStyle(color: Colors.white,fontWeight: FontWeight.w700),
             ),
           ),
           actions: <Widget>[
             // usually buttons at the bottom of the dialog
             new FlatButton(
               child: new Text("Close"),
               onPressed: () {
                 Navigator.of(context).pop();
               },
             ),
             new FlatButton(
               child: new Text("Okay"),
               onPressed: () {
                 Navigator.of(context).pop();
               },
             ),
           ],
         );
       },
     );
 
   }

You can find the complete example in the Example project.

Using dynamic Data #

You can use generateCustomDay to initialize CustomDay Objects with dynamic data.

CustomDatePickerController _controller = new CustomDatePickerController(
    start: DateTime.now().add(Duration(days: -300)),
    end: DateTime.now().add(Duration(days: 300)),
    generateCustomDay: generateDay
  );

  static CustomDay  generateDay(DateTime dateTime){
     Random random = new Random();
     int randomNumber = random.nextInt(200)+70;
     int state = random.nextInt(3)*random.nextInt(2)*random.nextInt(2); 
     return CustomDay(dateTime, {"cost":randomNumber,"state":state});
   }

You can also set Data using

controler.setDayData(DateTime date, dynamic data)

You can find the complete example in the Example project.

Changelog #

Please see the Changelog page to know what's recently changed.

Contributions #

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a new feature, please send a pull request.

10
likes
20
pub points
0%
popularity

Publisher

unverified uploader

A Customizable_date_picker

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

flutter, intl

More

Packages that depend on customizable_date_picker