base_page.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:get/get.dart';
  4. import '../resource/colors.gen.dart';
  5. abstract class BasePage<T extends GetxController> extends GetView<T> {
  6. const BasePage({super.key});
  7. @override
  8. Widget build(BuildContext context) {
  9. return AnnotatedRegion<SystemUiOverlayStyle>(
  10. value: SystemUiOverlayStyle.light.copyWith(
  11. statusBarColor: Colors.transparent, // 设置状态栏颜色为透明
  12. statusBarIconBrightness: _getStatusBarDarkFont(),
  13. ),
  14. child: Container(
  15. color: backgroundColor(),
  16. child: immersive()
  17. ? buildBody(context)
  18. : SafeArea(child: buildBody(context)),
  19. ),
  20. );
  21. }
  22. Brightness _getStatusBarDarkFont() {
  23. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  24. }
  25. bool statusBarDarkFont() {
  26. return true;
  27. }
  28. bool immersive() {
  29. return false;
  30. }
  31. Widget buildBody(BuildContext context);
  32. Color backgroundColor() {
  33. return ColorName.bgColorPrimary;
  34. }
  35. }