123456789101112131415161718192021222324252627282930313233343536 |
- import 'package:flutter/material.dart';
-
- class Responsive extends StatelessWidget {
- final Widget mobile;
- final Widget? tablet;
- final Widget desktop;
-
- const Responsive({
- Key? key,
- required this.mobile,
- this.tablet,
- required this.desktop,
- }) : super(key: key);
-
- static bool isMobile(BuildContext context) =>
- MediaQuery.of(context).size.width < 576;
-
- static bool isTablet(BuildContext context) =>
- MediaQuery.of(context).size.width >= 576 &&
- MediaQuery.of(context).size.width <= 992;
-
- static bool isDesktop(BuildContext context) =>
- MediaQuery.of(context).size.width > 992;
-
- @override
- Widget build(BuildContext context) {
- final Size size = MediaQuery.of(context).size;
- if (size.width > 992) {
- return desktop;
- } else if (size.width >= 576 && tablet != null) {
- return tablet!;
- } else {
- return mobile;
- }
- }
- }
|