var height = MediaQuery.of(context).viewPadding.top;
注意:这仅适用于移动设备,因为其他平台没有专用的状态栏,并且将为它们返回
0.0
。
MediaQuery
很酷,但是如果您无法访问 BuildContext
,您可以直接使用 window.viewPadding.top
,其中 window
来自 dart:ui
:
import 'dart:ui';
final statusBarHeight = window.viewPadding.top;
注意: 如 Dart 文档 中所述,这可以包括状态栏以外的其他内容,因此使用这些 API 时要小心
不知道为什么,但在某些情况下,我们会丢失 WidgetTree 叶子上的 MediaQuery 数据。 尝试使用与脚手架相同的上下文来获取 MediaQuery,它应该可以工作
对我来说这是有效的:
var statusbarHeight = (MediaQuery.of(context).padding.top + kToolbarHeight / MediaQuery.of(context).devicePixelRatio) - kToolbarHeight
希望它能帮助您,只需在您的应用程序中添加最新的 GetX 包并在代码中导入以下库即可。
import 'package:get/get.dart';
状态栏高度
要获取状态栏高度,请使用以下代码:
Get.statusBarHeight;
底栏高度
要获取底部栏高度,请使用以下代码:
Get.bottomBarHeight;
屏幕高度
要获取屏幕高度,请使用以下代码:
Get.height;
屏幕宽度
要获取屏幕宽度,请使用以下代码:
Get.width;
您也可以使用
SafeArea()
小部件来忽略叠加层,只需用它包裹您的小部件即可。