Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import "package:collection/collection.dart";
- void main() => runApp(MyApp());
- class MyApp extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'Flutter Demo',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- ),
- home: MyHomePage(),
- );
- }
- }
- class MyHomePage extends StatelessWidget {
- final _lessons = <Lesson>[
- Lesson(
- startTime: DateTime.utc(2019, 7, 25, 13),
- teacher: "Jacek Graczyk",
- courseCategory: "Matematyka"),
- Lesson(
- startTime: DateTime.utc(2019, 7, 25, 14),
- teacher: "Piotr Konieczny",
- courseCategory: "Historia"),
- Lesson(
- startTime: DateTime.utc(2019, 7, 27, 20),
- teacher: "Marcin Miara",
- courseCategory: "Język angielski"),
- ];
- Widget _buildSingleLessonWidget(Lesson lesson) {
- return Padding(
- padding: EdgeInsets.all(6.0),
- child: Row(children: [
- Icon(
- Icons.cake,
- size: 40.0,
- ),
- Column(
- children: [
- Text(lesson.courseCategory),
- Text(lesson.teacher),
- ],
- ),
- Text(lesson.startTime.hour.toString()),
- ]),
- );
- }
- Widget _buildLessonsWidget(List<Lesson> lessons, String weekDay) {
- final lessonWidgets = lessons.map((Lesson lesson) {
- return _buildSingleLessonWidget(lesson);
- }).toList();
- return Column(
- children: [Text(weekDay), ...lessonWidgets],
- );
- }
- @override
- Widget build(BuildContext context) {
- var newMap = groupBy(_lessons, (_lessons) => _lessons.startTime)
- .map((k, v) =>
- MapEntry(k, _buildLessonsWidget(v, k.toString())))
- .entries
- .toList()
- ..sort((a, b) => a.key.compareTo(b.key))
- ..map((x) => x.value);
- return Scaffold(
- appBar: AppBar(
- title: Text('NauczMnie'),
- ),
- body: Column(children: List<Widget>.from(newMap)),
- );
- }
- }
- class Lesson {
- final DateTime startTime;
- final String teacher;
- final String courseCategory;
- const Lesson({
- @required this.startTime,
- @required this.teacher,
- @required this.courseCategory,
- }) : assert(startTime != null),
- assert(teacher != null),
- assert(courseCategory != null);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement