adaptive_base.dart 826 B

1234567891011121314151617181920212223242526
  1. // Adaptive Widget Base
  2. // Adapted from: https://github.com/aqwert/flutter_platform_widgets
  3. import 'package:flutter/widgets.dart';
  4. import './adaptive.dart' show getPlatform;
  5. /// Abstract class for adaptive widgets.
  6. ///
  7. /// Internally, the class splits build into createAndroidWidget and
  8. /// createCupertinoWidget and call the relevant method.
  9. abstract class AdaptiveBase<AWidget extends Widget, CWidget extends Widget>
  10. extends StatelessWidget {
  11. const AdaptiveBase(Key? key) : super(key: key);
  12. @override
  13. Widget build(BuildContext context) {
  14. if (getPlatform() == TargetPlatform.android) {
  15. return createAndroidWidget(context);
  16. } else {
  17. return createCupertinoWidget(context);
  18. }
  19. }
  20. AWidget createAndroidWidget(BuildContext context);
  21. CWidget createCupertinoWidget(BuildContext context);
  22. }