11import 'package:flutter/material.dart' ;
22import 'package:flutter_weather/main.dart' ;
33import 'package:flutter_weather/src/model/weather.dart' ;
4- import 'package:flutter_weather/src/widgets/current_conditions.dart' ;
5- import 'package:flutter_weather/src/widgets/empty_widget.dart' ;
64import 'package:flutter_weather/src/widgets/forecast_horizontal_widget.dart' ;
7- import 'package:flutter_weather/src/widgets/line_chart.dart' ;
85import 'package:flutter_weather/src/widgets/value_tile.dart' ;
6+ import 'package:flutter_weather/src/widgets/weather_swipe_pager.dart' ;
97import 'package:intl/intl.dart' ;
10- import 'package:flutter_swiper/flutter_swiper.dart' ;
11- import 'package:charts_flutter/flutter.dart' as charts;
128
139class WeatherWidget extends StatelessWidget {
1410 final Weather weather;
15- final temperatureData;
1611
17- WeatherWidget ({this .weather})
18- : temperatureData = [
19- new charts.Series <Weather , DateTime >(
20- id: 'Temperature' ,
21- colorFn: (_, __) => charts.MaterialPalette .blue.shadeDefault,
22- domainFn: (Weather weather, _) =>
23- DateTime .fromMillisecondsSinceEpoch (weather.time * 1000 ),
24- measureFn: (Weather weather, _) => weather.temperature.celsius,
25- data: weather.forecast,
26- )
27- ];
12+ WeatherWidget ({this .weather}) : assert (weather != null );
2813
2914 @override
3015 Widget build (BuildContext context) {
@@ -51,35 +36,7 @@ class WeatherWidget extends StatelessWidget {
5136 fontSize: 15 ,
5237 color: AppStateContainer .of (context).theme.accentColor),
5338 ),
54- Container (
55- width: MediaQuery .of (context).size.width,
56- height: 300 ,
57- child: Swiper (
58- itemCount: 2 ,
59- index: 0 ,
60- itemBuilder: (context, index) {
61- if (index == 0 ) {
62- return CurrentConditions (
63- weather: weather,
64- );
65- } else if (index == 1 ) {
66- return PointsLineChart (temperatureData, animate: true ,);
67- }
68- return EmptyWidget ();
69- },
70- pagination: new SwiperPagination (
71- margin: new EdgeInsets .all (5.0 ),
72- builder: new DotSwiperPaginationBuilder (
73- size: 5 ,
74- activeSize: 5 ,
75- color: AppStateContainer .of (context)
76- .theme
77- .accentColor
78- .withOpacity (0.4 ),
79- activeColor:
80- AppStateContainer .of (context).theme.accentColor)),
81- ),
82- ),
39+ WeatherSwipePager (weather: weather),
8340 Padding (
8441 child: Divider (
8542 color:
0 commit comments