SpaceScreen.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import 'package:flutter/material.dart';
  2. import '../basic/Common.dart';
  3. import '../basic/Method.dart';
  4. import 'AboutScreen.dart';
  5. import 'LoginScreen.dart';
  6. import 'components/Badge.dart';
  7. import 'components/UserProfileCard.dart';
  8. // 个人空间页面
  9. class SpaceScreen extends StatefulWidget {
  10. const SpaceScreen({Key? key}) : super(key: key);
  11. @override
  12. State<StatefulWidget> createState() => _SpaceScreenState();
  13. }
  14. class _SpaceScreenState extends State<SpaceScreen> {
  15. @override
  16. Widget build(BuildContext context) {
  17. return Scaffold(
  18. appBar: AppBar(
  19. title: const Text('我的'),
  20. actions: [
  21. IconButton(
  22. onPressed: () async {
  23. bool result =
  24. await confirmDialog(context, '退出登录', '您确认要退出当前账号吗?');
  25. if (result) {
  26. await method.logout();
  27. if (!mounted) return;
  28. Navigator.pushReplacement(
  29. context,
  30. MaterialPageRoute(
  31. builder: (context) => LoginScreen()),
  32. );
  33. }
  34. },
  35. icon: const Icon(Icons.exit_to_app),
  36. ),
  37. IconButton(
  38. onPressed: () {
  39. Navigator.push(
  40. context,
  41. MaterialPageRoute(builder: (context) => const AboutScreen()),
  42. );
  43. },
  44. icon: const Badged(
  45. badge: null,
  46. child: Icon(Icons.info_outline),
  47. ),
  48. ),
  49. ],
  50. ),
  51. body: ListView(
  52. children: [
  53. const Divider(),
  54. UserProfileCard(load: () async => method.getProfile(),),
  55. const Divider(),
  56. GestureDetector(
  57. onTap: () {
  58. Navigator.push(
  59. context,
  60. MaterialPageRoute(builder: (context) => const AboutScreen()),
  61. );
  62. },
  63. child: const Text('关于'),),
  64. const Divider(),
  65. ],
  66. ),
  67. );
  68. }
  69. }