1. 程式人生 > >flutter 獲取螢幕寬度高度 通知欄高度等螢幕資訊

flutter 獲取螢幕寬度高度 通知欄高度等螢幕資訊

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;