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

qnzebej0  于 5个月前  发布在  Flutter
关注(0)|答案(2)|浏览(64)

我需要一个可靠的方法来得到屏幕的尺寸。
我知道MediaQuery.of(context),但是当底部UI项可见时,它会删除底部填充。

tvokkenx

tvokkenx1#

这似乎是不可能的从 dart 内目前在Android上由于Flutter忽略底部系统用户界面(即按钮)。
我想这可能是一个bug,但如果你仔细看文档,它从来没有说window.physicalSizeMediaQueryData.size是屏幕的物理尺寸,而是flutter可以渲染的大小。这可能是有道理的,否则每个应用程序都必须确保考虑到这一点。
所以你要做的是use method channels直接与android通信。我已经看过了,似乎没有任何插件可以做到这一点。所以如果你觉得有野心的话,你可以把它打包成一个。但是你想做的是调用native,然后直接在java代码中获得物理屏幕大小。如果你这样做,你可能最好实现它,iOS也是如此,尽管在那里不存在同样的问题(你甚至可以直接用if/else来做)。
幸运的是,以前有人这样做过,所以你可以用它作为例子:https://github.com/magnatronus/flutter-displaymetrics
希望这对你有帮助,对不起,我没有一个更简单的答案!

bpsygsoo

bpsygsoo2#

最近我发布了一个插件,它可以帮助你得到屏幕的尺寸,和其他显示指标,如PPI和对角线,它也将帮助你转换英寸和厘米到Flutter逻辑像素.你可以在这里尝试https://pub.dev/packages/display_metrics

相关问题