base_page.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. statusBarIconBrightness: _getStatusBarDarkFont(),
  15. systemNavigationBarColor: navigationBarColor(),
  16. systemNavigationBarIconBrightness: _getNavigationBarDarkFont(),
  17. ),
  18. child: GestureDetector(
  19. onTap: () {
  20. // controller.hideKeyboard(context);
  21. backgroundOnTapEvent();
  22. },
  23. child: Container(
  24. color: backgroundColor(),
  25. child: immersive()
  26. ? buildBody(context)
  27. : SafeArea(child: buildBody(context)),
  28. ),
  29. ),
  30. );
  31. }
  32. // 点击空白处
  33. void backgroundOnTapEvent() {}
  34. Brightness _getStatusBarDarkFont() {
  35. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  36. }
  37. Brightness _getNavigationBarDarkFont() {
  38. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  39. }
  40. bool statusBarDarkFont() {
  41. return true;
  42. }
  43. bool navigationBarDarkFont() {
  44. return true;
  45. }
  46. bool immersive() {
  47. return false;
  48. }
  49. Widget buildBody(BuildContext context);
  50. Color backgroundColor() {
  51. return ColorName.bgColorPrimary;
  52. }
  53. Color navigationBarColor() {
  54. return ColorName.bgColorPrimary;
  55. }
  56. }