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_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/views/responsive.dart';
  8. /// Description: welcome page
  9. /// Time : 08/24/2023 Thursday
  10. /// Author : liuyuqi.gov@msn.cn
  11. class WelcomePage extends StatefulWidget {
  12. const WelcomePage({super.key});
  13. @override
  14. State<WelcomePage> createState() => _WelcomePageState();
  15. }
  16. class _WelcomePageState extends State<WelcomePage> {
  17. @override
  18. Widget build(BuildContext context) {
  19. return Background(
  20. child: SingleChildScrollView(
  21. child: SafeArea(
  22. child: Responsive(
  23. mobile: buildWelcomeMobile(), desktop: buildWelcomeDesktop()),
  24. ),
  25. ));
  26. }
  27. Widget buildWelcomeMobile() {
  28. return Column(
  29. mainAxisAlignment: MainAxisAlignment.center,
  30. children: [
  31. const WelcomeImage(),
  32. Row(
  33. children: [
  34. const Spacer(),
  35. Expanded(
  36. flex: 8,
  37. child: buildLoginAndSignupBtn(),
  38. ),
  39. const Spacer()
  40. ],
  41. )
  42. ],
  43. );
  44. }
  45. Widget buildWelcomeDesktop() {
  46. return Row(
  47. mainAxisAlignment: MainAxisAlignment.end,
  48. children: [
  49. const Expanded(child: WelcomeImage()),
  50. Expanded(
  51. child: Row(
  52. mainAxisAlignment: MainAxisAlignment.center,
  53. children: [
  54. SizedBox(
  55. width: 450,
  56. child: buildLoginAndSignupBtn(),
  57. )
  58. ],
  59. ))
  60. ],
  61. );
  62. }
  63. Widget buildLoginAndSignupBtn() {
  64. return Column(
  65. children: [
  66. Hero(
  67. tag: "login_btn",
  68. child: ElevatedButton(
  69. child: const Text("登录"),
  70. onPressed: () {
  71. Navigator.push(context, MaterialPageRoute(builder: (context) {
  72. return const LoginPage();
  73. }));
  74. },
  75. ),
  76. ),
  77. const SizedBox(
  78. height: 16,
  79. ),
  80. ElevatedButton(
  81. onPressed: () {
  82. Navigator.push(context, MaterialPageRoute(builder: (context) {
  83. return const RegisterPage();
  84. }));
  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. }