base_page.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import 'dart:ui';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/services.dart';
  5. import 'package:get/get.dart';
  6. import '../resource/colors.gen.dart';
  7. abstract class BasePage<T extends BaseController> extends GetView<T> {
  8. const BasePage({super.key});
  9. @override
  10. Widget build(BuildContext context) {
  11. return AnnotatedRegion<SystemUiOverlayStyle>(
  12. value: SystemUiOverlayStyle.light.copyWith(
  13. statusBarColor: Colors.transparent,
  14. // 设置状态栏颜色为透明
  15. statusBarBrightness: _getStatusBarDarkFont(),
  16. statusBarIconBrightness: _getStatusIconBarDarkFont(),
  17. systemNavigationBarColor: navigationBarColor(),
  18. systemNavigationBarIconBrightness: _getNavigationBarDarkFont(),
  19. ),
  20. child: GestureDetector(
  21. onTap: () {
  22. // controller.hideKeyboard(context);
  23. backgroundOnTapEvent();
  24. },
  25. child: Container(
  26. color: backgroundColor(),
  27. child: immersive()
  28. ? buildBody(context)
  29. : SafeArea(child: buildBody(context)),
  30. ),
  31. ),
  32. );
  33. }
  34. // 点击空白处
  35. void backgroundOnTapEvent() {}
  36. Brightness _getStatusBarDarkFont() {
  37. return statusBarDarkFont() ? Brightness.light : Brightness.dark;
  38. }
  39. Brightness _getStatusIconBarDarkFont() {
  40. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  41. }
  42. Brightness _getNavigationBarDarkFont() {
  43. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  44. }
  45. bool statusBarDarkFont() {
  46. return true;
  47. }
  48. bool navigationBarDarkFont() {
  49. return true;
  50. }
  51. bool immersive() {
  52. return false;
  53. }
  54. Widget buildBody(BuildContext context);
  55. Color backgroundColor() {
  56. return ColorName.bgColorPrimary;
  57. }
  58. Color navigationBarColor() {
  59. return ColorName.bgColorPrimary;
  60. }
  61. }