base_page.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. height: pageHeight(),
  27. color: backgroundColor(),
  28. child: immersive()
  29. ? buildBody(context)
  30. : SafeArea(child: buildBody(context)),
  31. ),
  32. ),
  33. );
  34. }
  35. // 点击空白处
  36. void backgroundOnTapEvent() {}
  37. Brightness _getStatusBarDarkFont() {
  38. return statusBarDarkFont() ? Brightness.light : Brightness.dark;
  39. }
  40. Brightness _getStatusIconBarDarkFont() {
  41. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  42. }
  43. Brightness _getNavigationBarDarkFont() {
  44. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  45. }
  46. bool statusBarDarkFont() {
  47. return true;
  48. }
  49. bool navigationBarDarkFont() {
  50. return true;
  51. }
  52. bool immersive() {
  53. return false;
  54. }
  55. double? pageHeight() {
  56. return null;
  57. }
  58. Widget buildBody(BuildContext context);
  59. Color backgroundColor() {
  60. return ColorName.bgColorPrimary;
  61. }
  62. Color navigationBarColor() {
  63. return ColorName.bgColorPrimary;
  64. }
  65. }