Flutter中如何获取状态栏高度?

问题描述 投票:0回答:5

如何获取状态栏高度?

flutter dart flutter-layout
5个回答
112
投票
var height = MediaQuery.of(context).viewPadding.top;

注意:这仅适用于移动设备,因为其他平台没有专用的状态栏,并且将为它们返回

0.0


2
投票

MediaQuery
很酷,但是如果您无法访问
BuildContext
,您可以直接使用
window.viewPadding.top
,其中
window
来自
dart:ui
:

import 'dart:ui';

final statusBarHeight = window.viewPadding.top;

注意:Dart 文档 中所述,这可以包括状态栏以外的其他内容,因此使用这些 API 时要小心


1
投票

不知道为什么,但在某些情况下,我们会丢失 WidgetTree 叶子上的 MediaQuery 数据。 尝试使用与脚手架相同的上下文来获取 MediaQuery,它应该可以工作


0
投票

对我来说这是有效的:

var statusbarHeight = (MediaQuery.of(context).padding.top + kToolbarHeight / MediaQuery.of(context).devicePixelRatio) - kToolbarHeight

-4
投票

希望它能帮助您,只需在您的应用程序中添加最新的 GetX 包并在代码中导入以下库即可。

import 'package:get/get.dart';

状态栏高度

要获取状态栏高度,请使用以下代码:

Get.statusBarHeight;

底栏高度

要获取底部栏高度,请使用以下代码:

Get.bottomBarHeight;

屏幕高度

要获取屏幕高度,请使用以下代码:

Get.height;

屏幕宽度

要获取屏幕宽度,请使用以下代码:

Get.width;

您也可以使用

SafeArea()
小部件来忽略叠加层,只需用它包裹您的小部件即可。

© www.soinside.com 2019 - 2024. All rights reserved.