53 lines
1.5 KiB
Dart
53 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'dart:ui' as ui show window;
|
|
|
|
class Screen {
|
|
static double get width {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.size.width;
|
|
}
|
|
|
|
static double get height {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.size.height;
|
|
}
|
|
|
|
static double get scale {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.devicePixelRatio;
|
|
}
|
|
|
|
static double get textScaleFactor {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.textScaleFactor;
|
|
}
|
|
|
|
static double get navigationBarHeight {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.padding.top + kToolbarHeight;
|
|
}
|
|
|
|
static double get topSafeHeight {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
if (mediaQuery.padding.top <= 0) {
|
|
return 24.0;
|
|
}
|
|
return mediaQuery.padding.top;
|
|
}
|
|
|
|
static double get bottomSafeHeight {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.padding.bottom;
|
|
}
|
|
|
|
static bool get isHorizontal {
|
|
MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
|
|
return mediaQuery.size.width > mediaQuery.size.height;
|
|
}
|
|
|
|
static updateStatusBarStyle(SystemUiOverlayStyle style) {
|
|
SystemChrome.setSystemUIOverlayStyle(style);
|
|
}
|
|
}
|