NishadAvnish

added for split screen by setting min height

  1 +import 'dart:ui';
  2 +
1 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
2 import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 import 'package:flutter_screenutil/flutter_screenutil.dart';
3 5
@@ -50,7 +52,7 @@ class _HomePageState extends State<HomePage> { @@ -50,7 +52,7 @@ class _HomePageState extends State<HomePage> {
50 Container( 52 Container(
51 padding: EdgeInsets.all(ScreenUtil().setWidth(10)), 53 padding: EdgeInsets.all(ScreenUtil().setWidth(10)),
52 width: 180.w, 54 width: 180.w,
53 - height: 200.h, 55 + height: 120.h,
54 color: Colors.red, 56 color: Colors.red,
55 child: Text( 57 child: Text(
56 '我的实际宽度:${180.w}dp \n' 58 '我的实际宽度:${180.w}dp \n'
@@ -7,6 +7,7 @@ library flutter_screenutil; @@ -7,6 +7,7 @@ library flutter_screenutil;
7 7
8 import 'dart:math'; 8 import 'dart:math';
9 import 'dart:ui' as ui; 9 import 'dart:ui' as ui;
  10 +import 'dart:ui';
10 11
11 import 'package:flutter/material.dart'; 12 import 'package:flutter/material.dart';
12 13
@@ -5,28 +5,34 @@ class ScreenUtilInit extends StatelessWidget { @@ -5,28 +5,34 @@ class ScreenUtilInit extends StatelessWidget {
5 ScreenUtilInit({ 5 ScreenUtilInit({
6 required this.builder, 6 required this.builder,
7 this.designSize = ScreenUtil.defaultSize, 7 this.designSize = ScreenUtil.defaultSize,
  8 + this.splitScreenMode = true,
8 Key? key, 9 Key? key,
9 }) : super(key: key); 10 }) : super(key: key);
10 11
11 final Widget Function() builder; 12 final Widget Function() builder;
  13 + final bool splitScreenMode;
12 14
13 /// The [Size] of the device in the design draft, in dp 15 /// The [Size] of the device in the design draft, in dp
14 final Size designSize; 16 final Size designSize;
15 - BoxConstraints constraints1 = BoxConstraints(maxHeight: 0.0);  
16 17
17 @override 18 @override
18 Widget build(BuildContext context) { 19 Widget build(BuildContext context) {
19 return LayoutBuilder(builder: (_, BoxConstraints constraints) { 20 return LayoutBuilder(builder: (_, BoxConstraints constraints) {
20 - if (constraints.maxHeight > constraints1.maxHeight) {  
21 - constraints1 = constraints; 21 + if (splitScreenMode) {
  22 + constraints = BoxConstraints(
  23 + minHeight: constraints.minHeight,
  24 + maxHeight: max(constraints.maxHeight, 700),
  25 + minWidth: constraints.minWidth,
  26 + maxWidth: constraints.maxWidth);
22 } 27 }
23 - if (constraints1.maxWidth != 0) { 28 +
  29 + if (constraints.maxWidth != 0) {
24 final Orientation orientation = 30 final Orientation orientation =
25 - constraints1.maxWidth > constraints1.maxHeight 31 + constraints.maxWidth > constraints.maxHeight
26 ? Orientation.landscape 32 ? Orientation.landscape
27 : Orientation.portrait; 33 : Orientation.portrait;
28 ScreenUtil.init( 34 ScreenUtil.init(
29 - constraints1, 35 + constraints,
30 orientation: orientation, 36 orientation: orientation,
31 designSize: designSize, 37 designSize: designSize,
32 ); 38 );