@@ -9,7 +9,7 @@ import 'package:material_symbols_icons/material_symbols_icons.dart';
99import '../screens/daily_forecast.dart' ;
1010import '../controllers/home_f.dart' ;
1111
12- class DailyCard extends StatelessWidget {
12+ class DailyCard extends StatefulWidget {
1313 final List <dynamic > dailyTime;
1414 final List <dynamic > dailyTempsMin;
1515 final List <dynamic > dailyWeatherCodes;
@@ -18,15 +18,39 @@ class DailyCard extends StatelessWidget {
1818 final int selectedContainerBgIndex;
1919 final String utcOffsetSeconds;
2020
21- DailyCard (
22- {super .key,
23- required this .dailyTime,
24- required this .dailyTempsMin,
25- required this .dailyWeatherCodes,
26- required this .dailyTempsMax,
27- required this .dailyPrecProb,
28- required this .utcOffsetSeconds,
29- required this .selectedContainerBgIndex});
21+ DailyCard ({
22+ super .key,
23+ required this .dailyTime,
24+ required this .dailyTempsMin,
25+ required this .dailyWeatherCodes,
26+ required this .dailyTempsMax,
27+ required this .dailyPrecProb,
28+ required this .utcOffsetSeconds,
29+ required this .selectedContainerBgIndex,
30+ });
31+
32+ @override
33+ DailyCardState createState () => DailyCardState ();
34+ }
35+
36+ class DailyCardState extends State <DailyCard > {
37+ late final ScrollController _scrollController;
38+
39+ @override
40+ void initState () {
41+ super .initState ();
42+ _scrollController = ScrollController ();
43+
44+ WidgetsBinding .instance.addPostFrameCallback ((_) {
45+ _scrollController.jumpTo (68 + 5 );
46+ });
47+ }
48+
49+ @override
50+ void dispose () {
51+ _scrollController.dispose ();
52+ super .dispose ();
53+ }
3054
3155 @override
3256 Widget build (BuildContext context) {
@@ -42,21 +66,22 @@ class DailyCard extends StatelessWidget {
4266
4367 final List <Map <String , dynamic >> validDailyData = [];
4468
45- for (int i = 0 ; i < dailyTime.length; i++ ) {
46- if (i < dailyTempsMin.length &&
47- i < dailyTempsMax.length &&
48- i < dailyWeatherCodes.length &&
49- i < dailyPrecProb.length &&
50- dailyTime[i] != null &&
51- dailyTempsMin[i] != null &&
52- dailyTempsMax[i] != null &&
53- dailyWeatherCodes[i] != null ) {
69+ for (int i = 0 ; i < widget. dailyTime.length; i++ ) {
70+ if (i < widget. dailyTempsMin.length &&
71+ i < widget. dailyTempsMax.length &&
72+ i < widget. dailyWeatherCodes.length &&
73+ i < widget. dailyPrecProb.length &&
74+ widget. dailyTime[i] != null &&
75+ widget. dailyTempsMin[i] != null &&
76+ widget. dailyTempsMax[i] != null &&
77+ widget. dailyWeatherCodes[i] != null ) {
5478 validDailyData.add ({
55- "time" : dailyTime[i],
56- "tempMin" : dailyTempsMin[i],
57- "tempMax" : dailyTempsMax[i],
58- "weatherCode" : dailyWeatherCodes[i],
59- "precipProb" : (dailyPrecProb[i] as num ? )? .toDouble () ?? 0.0000001 ,
79+ "time" : widget.dailyTime[i],
80+ "tempMin" : widget.dailyTempsMin[i],
81+ "tempMax" : widget.dailyTempsMax[i],
82+ "weatherCode" : widget.dailyWeatherCodes[i],
83+ "precipProb" :
84+ (widget.dailyPrecProb[i] as num ? )? .toDouble () ?? 0.0000001 ,
6085 });
6186 }
6287 }
@@ -66,7 +91,7 @@ class DailyCard extends StatelessWidget {
6691 child: Material (
6792 elevation: 1 ,
6893 borderRadius: BorderRadius .circular (20 ),
69- color: Color (selectedContainerBgIndex),
94+ color: Color (widget. selectedContainerBgIndex),
7095 child: Container (
7196 padding: EdgeInsets .only (top: 15 , bottom: 0 ),
7297 child: Column (
@@ -98,6 +123,7 @@ class DailyCard extends StatelessWidget {
98123 SizedBox (
99124 height: 213 ,
100125 child: ListView .separated (
126+ controller: _scrollController,
101127 scrollDirection: Axis .horizontal,
102128 physics: BouncingScrollPhysics (),
103129 itemCount: validDailyData.length,
@@ -114,7 +140,7 @@ class DailyCard extends StatelessWidget {
114140 EdgeInsetsDirectional itemMargin =
115141 EdgeInsetsDirectional .only (
116142 start: index == 0 ? 15 : 0 ,
117- end: index == dailyTime.length - 1 ? 15 : 0 ,
143+ end: index == widget. dailyTime.length - 1 ? 15 : 0 ,
118144 );
119145
120146 return RepaintBoundary (
@@ -191,7 +217,8 @@ class DailyCard extends StatelessWidget {
191217 height: 3 ,
192218 ),
193219 Text (
194- getDayLabel (time, index, utcOffsetSeconds)
220+ getDayLabel (time, index,
221+ widget.utcOffsetSeconds)
195222 .toLowerCase ()
196223 .tr (),
197224 style: const TextStyle (
0 commit comments