scrolling_day_calendar 1.0.4 scrolling_day_calendar: ^1.0.4 copied to clipboard
A flutter calendar package to allow users to scroll through given dates
import 'package:flutter/material.dart';
import 'package:scrolling_day_calendar/scrolling_day_calendar.dart';
import 'package:example/test_data.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Day Scroller Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
DateTime selectedDate = DateTime.now();
DateTime startDate = DateTime.now().subtract(Duration(days: 10));
DateTime endDate = DateTime.now().add(Duration(days: 10));
// test data
Map testData = TestData.getTestData();
Widget pageItems = Center(
child: Text("No events"),
);
randomWidget(DateTime selectedDate) {
String dateString =
"${selectedDate.day}/${selectedDate.month}/${selectedDate.year}";
if (testData.containsKey(dateString)) {
List items = testData[dateString];
return ListView.builder(
itemCount: items.length,
itemBuilder: (context, key) {
return Card(
child: Padding(
padding: EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Text(
items[key]["title"],
style: TextStyle(fontWeight: FontWeight.bold),
),
SizedBox(
height: 5.0,
),
Text(items[key]["description"])
],
),
),
);
},
);
}
return Center(
child: Text("No events"),
);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text(widget.title),
),
body: ScrollingDayCalendar(
startDate: startDate,
endDate: endDate,
selectedDate: selectedDate,
onDateChange: (direction, DateTime selectedDate) {
setState(() {
pageItems = randomWidget(selectedDate);
});
},
dateStyle: TextStyle(
fontWeight: FontWeight.bold,
color: Colors.white,
),
pageItems: pageItems,
dateFormat: "dd/MM/yyyy",
dateBackgroundColor: Colors.grey,
forwardIcon: Icons.arrow_forward,
backwardIcon: Icons.arrow_back,
pageChangeDuration: Duration(
milliseconds: 400,
),
),
),
);
}
}