我需要一种可靠的方法来获取屏幕尺寸。
我知道 MediaQuery.of(context),但是当底部UI项可见时,它将删除底部填充。
答案 0 :(得分:4)
由于抖动忽略了底部系统用户界面(即按钮),目前在Android上似乎无法实现。
我认为这可能是一个错误,但是如果您仔细阅读文档,它永远不会指出window.physicalSize
或MediaQueryData.size
是屏幕的物理尺寸,而是抖动的大小渲染。这可能是有道理的,否则每个应用程序都必须确保将其考虑在内。
所以您需要做的是use method channels直接与android通信。我已经看过了,似乎没有任何插件可以执行此操作,因此如果您有雄心壮志,可以将其合并为一个。但是,您要做的是调用native,然后直接在Java代码中获取物理屏幕尺寸。如果这样做的话,最好也可以在iOS上实现它,尽管那里不存在相同的问题(您甚至可以通过if / else直接实现它)。
幸运的是,以前有人这样做过,因此您可以使用它作为示例:https://github.com/magnatronus/flutter-displaymetrics。假设displayMetrics给您合适的大小。
希望有帮助,对不起,我没有一个简单的答案给您!