welcome_page.dart 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_auth/models/config.dart';
  3. import 'package:flutter_auth/pages/login_page.dart';
  4. import 'package:flutter_auth/pages/register/register_page.dart';
  5. import 'package:flutter_auth/pages/welcome/welcome_image.dart';
  6. import 'package:flutter_auth/pages/background.dart';
  7. import 'package:flutter_auth/routes.dart';
  8. import 'package:flutter_auth/views/responsive.dart';
  9. /// Description: welcome page
  10. /// Time : 08/24/2023 Thursday
  11. /// Author : liuyuqi.gov@msn.cn
  12. class WelcomePage extends StatefulWidget {
  13. const WelcomePage({super.key});
  14. @override
  15. State<WelcomePage> createState() => _WelcomePageState();
  16. }
  17. class _WelcomePageState extends State<WelcomePage> {
  18. @override
  19. Widget build(BuildContext context) {
  20. return Background(
  21. child: SingleChildScrollView(
  22. child: SafeArea(
  23. child: Responsive(
  24. mobile: buildWelcomeMobile(), desktop: buildWelcomeDesktop()),
  25. ),
  26. ));
  27. }
  28. Widget buildWelcomeMobile() {
  29. return Column(
  30. mainAxisAlignment: MainAxisAlignment.center,
  31. children: [
  32. const WelcomeImage(),
  33. Row(
  34. children: [
  35. const Spacer(),
  36. Expanded(
  37. flex: 8,
  38. child: buildLoginAndSignupBtn(),
  39. ),
  40. const Spacer()
  41. ],
  42. )
  43. ],
  44. );
  45. }
  46. Widget buildWelcomeDesktop() {
  47. return Row(
  48. mainAxisAlignment: MainAxisAlignment.end,
  49. children: [
  50. const Expanded(child: WelcomeImage()),
  51. Expanded(
  52. child: Row(
  53. mainAxisAlignment: MainAxisAlignment.center,
  54. children: [
  55. SizedBox(
  56. width: 450,
  57. child: buildLoginAndSignupBtn(),
  58. )
  59. ],
  60. ))
  61. ],
  62. );
  63. }
  64. Widget buildLoginAndSignupBtn() {
  65. return Column(
  66. children: [
  67. Hero(
  68. tag: "login_btn",
  69. child: ElevatedButton(
  70. child: const Text("登录"),
  71. onPressed: () {
  72. // Navigator.push(context, MaterialPageRoute(builder: (context) {
  73. // return const LoginPage();
  74. // }));
  75. Routes.go(context, Routes.login);
  76. },
  77. ),
  78. ),
  79. const SizedBox(
  80. height: 16,
  81. ),
  82. ElevatedButton(
  83. onPressed: () {
  84. Routes.go(context, Routes.register);
  85. },
  86. style: ElevatedButton.styleFrom(
  87. backgroundColor: kPrimaryLightColor, elevation: 0),
  88. child: const Text(
  89. "注册",
  90. style: TextStyle(color: Colors.black),
  91. ),
  92. ),
  93. ],
  94. );
  95. }
  96. }