我需要一种可靠的方法来获取屏幕的尺寸。
我知道 MediaQuery.of(context),但它会在底部 UI 项可见时移除底部填充。
最佳答案
由于 flutter 忽略了底部系统 UI(即按钮),目前在 dart 中这似乎是不可能的。
我认为这可能是一个错误,但如果您仔细查看文档,它从未声明 window.physicalSize
或 MediaQueryData.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
dart - Flutter 小部件测试 : StreamBuilder snapshot has
dart - 具有水平列表和网格的 Flutter 可滚动主体作为子项