flutter 獲取螢幕寬度高度 通知欄高度等螢幕資訊
阿新 • • 發佈:2018-12-09
MediaQuery
MediaQuery.of(context)
包含了一些螢幕的屬性:
- size : 一個包含寬度和高度的物件,單位是px
print(MediaQuery.of(context).size); //輸出: Size(411.4, 683.4)
- devicePixelRatio : 返回裝置的畫素密度
print(MediaQuery.of(context).devicePixelRatio); //2.625
- textScaleFactor : 每個邏輯畫素的字型畫素數。 預設為1.0
dart:ui中的window物件
使用前需要在檔案頭部匯入包:
import ‘dart:ui’;
使用:window.physicalSize
返回一個包含螢幕寬高的物件,單位是dp.
print(window.physicalSize); //Size(1080.0, 1794.0)
然後我們看一下Window的常用屬性和方法 :
- defaultRouteName → String 啟動應用程式時嵌入器請求的路由或路徑。
- devicePixelRatio → double 每個邏輯畫素的裝置畫素數。 例如,Nexus 6的裝置畫素比為3.5。
- textScaleFactor → double 系統設定的文字比例。預設1.0
- toString() → String 返回此物件的字串表示形式。
- physicalSize → Size 返回一個包含螢幕寬高的物件,單位是dp
獲取系統欄高度
使用:
在 pubspec.yaml 中新增: flutter_statusbar : ^0.0.1
然後執行:flutter packages get
import 'package:flutter_statusbar/flutter_statusbar.dart';
double _height = await FlutterStatusbar.height;