base_page.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:get/get.dart';
  4. import 'base_view.dart';
  5. abstract class BasePage<T extends GetxController> extends BaseView<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. statusBarBrightness: _getStatusBarDarkFont(),
  13. statusBarIconBrightness: _getStatusIconBarDarkFont(),
  14. systemNavigationBarColor: navigationBarColor(),
  15. systemNavigationBarIconBrightness: _getNavigationBarDarkFont(),
  16. ),
  17. child: buildBoot(immersive()
  18. ? buildBody(context)
  19. : SafeArea(child: buildBody(context))),
  20. );
  21. }
  22. Brightness _getStatusBarDarkFont() {
  23. return statusBarDarkFont() ? Brightness.light : Brightness.dark;
  24. }
  25. Brightness _getStatusIconBarDarkFont() {
  26. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  27. }
  28. Brightness _getNavigationBarDarkFont() {
  29. return statusBarDarkFont() ? Brightness.dark : Brightness.light;
  30. }
  31. bool statusBarDarkFont() {
  32. return true;
  33. }
  34. bool navigationBarDarkFont() {
  35. return true;
  36. }
  37. bool immersive() {
  38. return false;
  39. }
  40. Color navigationBarColor() {
  41. return Colors.transparent;
  42. }
  43. }