splash_screen.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import 'package:flutter/material.dart';
  2. import 'dart:async';
  3. import 'package:flutter_svg/svg.dart';
  4. import 'package:shared_preferences/shared_preferences.dart';
  5. import '../components/background.dart';
  6. import '../constants.dart';
  7. class SplashScreen extends StatefulWidget {
  8. @override
  9. _SplashScreenState createState() => _SplashScreenState();
  10. }
  11. class _SplashScreenState extends State<SplashScreen> {
  12. Future<Timer> checkLoad() async {
  13. final SharedPreferences prefs = await SharedPreferences.getInstance();
  14. kEmptySocial = (prefs.getString('emptySocial') ?? null );
  15. if( kEmptySocial != null ){
  16. kEmptySocial = (prefs.getString('emptySocial') ?? null );
  17. kEmptyAccessToken = (prefs.getString('emptyAccessToken') ?? null );
  18. kEmptyId = (prefs.getString('emptyId') ?? null );
  19. kEmptyName = (prefs.getString('emptyName') ?? null );
  20. kEmptyEmail = (prefs.getString('emptyEmail') ?? null );
  21. kEmptyImage = (prefs.getString('emptyImage') ?? null );
  22. }
  23. Navigator.pushNamedAndRemoveUntil(context, '/main', ModalRoute.withName('/main'));
  24. // Navigator.pushNamedAndRemoveUntil(context, '/login', ModalRoute.withName('/login'));
  25. }
  26. @override
  27. void initState() {
  28. // TODO: implement initState
  29. super.initState();
  30. new Future.delayed(const Duration(seconds: 1), () {
  31. checkLoad();
  32. });
  33. }
  34. @override
  35. Widget build(BuildContext context) {
  36. Size size = MediaQuery.of(context).size;
  37. return Background(
  38. image: Container(
  39. height: size.height,
  40. width: size.width,
  41. decoration: BoxDecoration(
  42. image: DecorationImage(
  43. image: AssetImage('assets/images/splash_bg.png'),
  44. fit: BoxFit.cover
  45. )
  46. ),
  47. ),
  48. child: Scaffold(
  49. backgroundColor: Colors.transparent,
  50. body: Column(
  51. mainAxisAlignment: MainAxisAlignment.center,
  52. crossAxisAlignment: CrossAxisAlignment.center,
  53. children: [
  54. SvgPicture.asset(
  55. "assets/images/logo.svg",
  56. height: size.height * 0.4,
  57. ),
  58. SizedBox(height: size.height * 0.1),
  59. Center(child: CircularProgressIndicator()),
  60. SizedBox(height: size.height * 0.03),
  61. Text('Loading...',style: Theme.of(context).textTheme.bodyText1,),
  62. ],
  63. ),
  64. ),
  65. );
  66. }
  67. }