dart - 在 Flutter 中获取设备的宽度和高度

我需要一种可靠的方法来获取屏幕的尺寸。

我知道 MediaQuery.of(context),但它会在底部 UI 项可见时移除底部填充。

最佳答案

由于 flutter 忽略了底部系统 UI(即按钮),目前在 dart 中这似乎是不可能的。

我认为这可能是一个错误,但如果您仔细查看文档,它从未声明 window.physicalSizeMediaQueryData.size 是屏幕,而是 flutter 可以渲染的大小。这可能是有道理的,否则每个应用都必须确保考虑到这一点。

所以你要做的是use method channels直接与android通信。我已经看了一下,似乎没有任何插件可以做到这一点,因此如果您有野心,可以将其包装成一个。但是您要做的是调用 native,然后直接在 java 代码中获取物理屏幕大小。如果你这样做,你可能最好也为 iOS 实现它,尽管同样的问题在那里不存在(你甚至可以直接用 if/else 来做)。

幸运的是,以前有人这样做过,因此您可以将其用作示例:https://github.com/magnatronus/flutter-displaymetrics .假设 displayMetrics 为您提供正确的尺寸。

希望对您有所帮助,抱歉,我没有更简单的答案!

https://stackoverflow.com/questions/52954549/

相关文章:

dart - 在初始化程序中只能访问静态成员。 Dart2.0

dart - 检查无状态小部件是否在 flutter 中处理

android-studio - Android : Could not find aapt2-pr

dart - flutter 错误 : Could not find the correct Sco

android - 在 Flutter 中剪切文本效果

dart - Flutter 小部件测试 : StreamBuilder snapshot has

dart - 具有水平列表和网格的 Flutter 可滚动主体作为子项

ios - Flutter 在我的 Flutter 应用程序的根目录上构建 IOS 不起作用

flutter - Flutter 中的可滚动底部工作表

dart - 如何在没有 Scaffold.drawer 的情况下使用 Drawer?