base_page.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/services.dart';
  4. import 'package:get/get.dart';
  5. import 'base_view.dart';
  6. abstract class BasePage<T extends GetxController> extends BaseView<T> {
  7. const BasePage({super.key});
  8. @override
  9. Widget build(BuildContext context) {
  10. return AnnotatedRegion<SystemUiOverlayStyle>(
  11. value: SystemUiOverlayStyle.light.copyWith(
  12. statusBarColor: Colors.transparent,
  13. statusBarBrightness: _getStatusBarDarkFont(),
  14. statusBarIconBrightness: _getStatusIconBarDarkFont(),
  15. systemNavigationBarColor: navigationBarColor(),
  16. systemNavigationBarIconBrightness: _getNavigationBarDarkFont(),
  17. ),
  18. child: buildBoot(immersive()
  19. ? buildBody(context)
  20. : SafeArea(child: buildBody(context))),
  21. );
  22. }
  23. Brightness _getStatusBarDarkFont() {
  24. return statusBarDarkFont() ? Brightness.light : Brightness.dark;
  25. }
  26. Brightness _getStatusIconBarDarkFont() {
  27. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  28. }
  29. Brightness _getNavigationBarDarkFont() {
  30. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  31. }
  32. bool statusBarDarkFont() {
  33. return true;
  34. }
  35. bool navigationBarDarkFont() {
  36. return true;
  37. }
  38. bool immersive() {
  39. return false;
  40. }
  41. Color navigationBarColor() {
  42. return Colors.transparent;
  43. }
  44. }