You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
932 B

import 'dart:developer';
import 'package:flutter/material.dart';
class ResponsiveLayout extends StatelessWidget {
const ResponsiveLayout({
Key? key,
required this.largeChild,
this.mediumChild,
this.smallChild,
this.largeBreakPoint = 1200.0,
this.mediumBreakPoint = 580.0,
}) : super(key: key);
final Widget largeChild;
final Widget? mediumChild;
final Widget? smallChild;
final double largeBreakPoint;
final double mediumBreakPoint;
@override
Widget build(BuildContext context) {
final smallestWidth = MediaQuery.of(context).size.width;
log('width: $smallestWidth');
return AnimatedSwitcher(
duration: const Duration(milliseconds: 300),
child: smallestWidth >= largeBreakPoint
? largeChild
: smallestWidth >= mediumBreakPoint
? mediumChild ?? largeChild
: smallChild ?? mediumChild ?? largeChild,
);
}
}