splash_page.dart 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'dart:async';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_green/pages/guide_page.dart';
  4. import 'package:flutter_green/pages/login/welcome_page.dart';
  5. import 'package:shared_preferences/shared_preferences.dart';
  6. /// 闪屏页
  7. class SplashPage extends StatefulWidget {
  8. @override
  9. _SplashPageState createState() => _SplashPageState();
  10. }
  11. class _SplashPageState extends State<SplashPage> {
  12. Future checkFirstSeen() async {
  13. SharedPreferences preference = await SharedPreferences.getInstance();
  14. bool _seen = (preference.getBool('guide_flag') ?? false); //如果已经打开过一次,就不展示
  15. if (_seen) {
  16. Navigator.of(context).pushReplacement(
  17. MaterialPageRoute(builder: (context) => WelcomePage())); //主页
  18. } else {
  19. preference.setBool('guide_flag', true);
  20. Navigator.of(context).pushReplacement(
  21. MaterialPageRoute(builder: (context) => GuidePage())); //第一步,第二步。。
  22. }
  23. }
  24. @override
  25. void initState() {
  26. super.initState();
  27. Timer(Duration(milliseconds: 2000), () {
  28. checkFirstSeen();
  29. });
  30. }
  31. @override
  32. Widget build(BuildContext context) {
  33. return Scaffold(
  34. body: Stack(
  35. fit: StackFit.expand,
  36. children: <Widget>[
  37. Container(
  38. decoration: BoxDecoration(color: Color(0xFF6ecce2)),
  39. child: Column(
  40. mainAxisAlignment: MainAxisAlignment.start,
  41. children: <Widget>[
  42. Expanded(
  43. flex: 2,
  44. child: Container(
  45. child: Column(
  46. mainAxisAlignment: MainAxisAlignment.center,
  47. children: <Widget>[
  48. CircleAvatar(
  49. backgroundColor: Color(0xFF28152a),
  50. radius: 50.0,
  51. child: Image.asset("assets/images/leaf.jpg"),
  52. ),
  53. Padding(
  54. padding: EdgeInsets.only(top: 15.0),
  55. ),
  56. Text(
  57. "欢迎使用绿植App",
  58. style: TextStyle(
  59. color: Colors.white,
  60. fontWeight: FontWeight.bold,
  61. fontSize: 24.0),
  62. ),
  63. ],
  64. ),
  65. ),
  66. ),
  67. ],
  68. )),
  69. ],
  70. ),
  71. );
  72. }
  73. }