@@ -2,26 +2,61 @@ import 'package:flutter/material.dart';
22import 'package:survey_flutter/screens/home/home_header_widget.dart' ;
33import 'package:survey_flutter/screens/home/home_pages_widget.dart' ;
44import 'package:survey_flutter/screens/home/home_page_indicator_widget.dart' ;
5+ import 'package:survey_flutter/screens/home/home_shimmer_loading.dart' ;
56
6- const routePathHomeScreen = '/home' ;
7-
8- class HomeScreen extends StatelessWidget {
7+ class HomeScreen extends StatefulWidget {
98 const HomeScreen ({Key ? key}) : super (key: key);
109
10+ @override
11+ HomeScreenState createState () => HomeScreenState ();
12+ }
13+
14+ class HomeScreenState extends State <HomeScreen > {
15+ bool _isLoading = true ;
16+
17+ @override
18+ void initState () {
19+ super .initState ();
20+ _openHomeWithShimmerLoading ();
21+ }
22+
23+ Future <void > _openHomeWithShimmerLoading () async {
24+ await Future .delayed (const Duration (seconds: 1 ));
25+ setState (() {
26+ _isLoading = false ;
27+ });
28+ }
29+
1130 @override
1231 Widget build (BuildContext context) {
13- return Stack (
14- children: [
15- HomePagesWidget (),
16- const HomeHeaderWidget (),
17- const Align (
18- alignment: Alignment .bottomCenter,
19- child: Padding (
20- padding: EdgeInsets .only (bottom: 220 ),
21- child: HomePageIndicatorWidget (),
32+ return Scaffold (
33+ body: Stack (
34+ children: [
35+ HomePagesWidget (),
36+ const HomeHeaderWidget (),
37+ const Align (
38+ alignment: Alignment .bottomCenter,
39+ child: Padding (
40+ padding: EdgeInsets .only (bottom: 220 ),
41+ child: HomePageIndicatorWidget (),
42+ ),
2243 ),
23- ),
24- ],
44+ // TODO: Handle only show shimmer loading after user login
45+ if (_isLoading) _buildShimmerLoading (),
46+ ],
47+ ),
48+ );
49+ }
50+
51+ Widget _buildShimmerLoading () {
52+ return AnimatedOpacity (
53+ opacity: 1.0 ,
54+ duration: const Duration (seconds: 1 ),
55+ curve: Curves .easeInOut,
56+ child: Container (
57+ color: Colors .black,
58+ child: const HomeShimmerLoading (),
59+ ),
2560 );
2661 }
2762}
0 commit comments