flutter如何获取状态栏高度

在Flutter开发中,我需要获取手机状态栏的高度,但不知道具体该用什么方法。尝试过MediaQuery,但不确定获取的是否准确,还有其他更可靠的方式吗?希望了解跨平台兼容的解决方案。

2 回复

使用 MediaQuery.of(context).padding.top 获取状态栏高度。需在 BuildContext 可用时调用,例如在 build 方法中。

更多关于flutter如何获取状态栏高度的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中,可以通过 MediaQuery 获取状态栏高度。以下是具体方法:

代码示例:

double statusBarHeight = MediaQuery.of(context).padding.top;

使用场景:

  • 通常在 build 方法中调用
  • 适用于需要避开状态栏的布局设计

注意事项:

  • 确保 context 可用(如在 Widgetbuild 方法内)
  • 返回值单位为逻辑像素(与设备像素密度无关)

完整示例:

@override
Widget build(BuildContext context) {
  return Container(
    margin: EdgeInsets.only(top: MediaQuery.of(context).padding.top),
    child: // 你的其他组件
  );
}

这种方法适用于 Android 和 iOS 平台,会自动返回当前设备的状态栏高度。

回到顶部