app_scaffold.dart 1011 B

12345678910111213141516171819202122232425262728293031
  1. import '../ui/adaptive_base.dart';
  2. import 'package:flutter/widgets.dart';
  3. import 'package:flutter/material.dart' show AppBar, Scaffold;
  4. import 'package:flutter/cupertino.dart'
  5. show CupertinoNavigationBar, CupertinoPageScaffold;
  6. /// Basic scaffold for app.
  7. class AppScaffold extends AdaptiveBase<Scaffold, CupertinoPageScaffold> {
  8. final Widget? title;
  9. final Widget body;
  10. final CupertinoNavigationBar? cupertinoNavigationBar;
  11. /// Creates an adaptive scaffold with given attributes.
  12. const AppScaffold(
  13. {this.title, required this.body, this.cupertinoNavigationBar, Key? key})
  14. : super(key);
  15. @override
  16. Scaffold createAndroidWidget(BuildContext context) {
  17. return Scaffold(appBar: AppBar(title: title), body: body);
  18. }
  19. @override
  20. CupertinoPageScaffold createCupertinoWidget(BuildContext context) {
  21. return CupertinoPageScaffold(
  22. navigationBar:
  23. cupertinoNavigationBar ?? CupertinoNavigationBar(middle: title),
  24. child: SafeArea(child: body),
  25. );
  26. }
  27. }