在Flutter中获取设备的宽高
Get width and height of the device in Flutter
我需要一种可靠的方法来获取屏幕尺寸。
我知道 MediaQuery.of(上下文),但是当底部 UI 项目可见时它会删除底部填充。
目前 Android 在 dart 中这似乎是不可能的,因为忽略了底部系统 UI(即按钮)。
我认为这可能是一个错误,但如果您仔细查看文档,它从未说明 window.physicalSize
或 MediaQueryData.size
是屏幕的物理尺寸,而是屏幕的尺寸颤振可以渲染。这可能是有道理的,否则每个应用程序都必须确保考虑到这一点。
所以您需要做的是 use method channels 直接与 android 通信。我已经看了一下,似乎没有任何插件可以执行此操作,因此如果您有雄心壮志,可以将其打包成一个。但是您要做的是调用本机,然后直接在 java 代码中获取物理屏幕尺寸。如果你这样做,你可能最好也为 iOS 实现它,尽管那里不存在同样的问题(你甚至可以直接用 if/else 颤振)。
幸运的是,之前有人这样做过,因此您可以将其用作示例:https://github.com/magnatronus/flutter-displaymetrics。假设 displayMetrics 给你正确的尺寸。
希望对您有所帮助,抱歉,我没有更简单的答案给您!
我需要一种可靠的方法来获取屏幕尺寸。
我知道 MediaQuery.of(上下文),但是当底部 UI 项目可见时它会删除底部填充。
目前 Android 在 dart 中这似乎是不可能的,因为忽略了底部系统 UI(即按钮)。
我认为这可能是一个错误,但如果您仔细查看文档,它从未说明 window.physicalSize
或 MediaQueryData.size
是屏幕的物理尺寸,而是屏幕的尺寸颤振可以渲染。这可能是有道理的,否则每个应用程序都必须确保考虑到这一点。
所以您需要做的是 use method channels 直接与 android 通信。我已经看了一下,似乎没有任何插件可以执行此操作,因此如果您有雄心壮志,可以将其打包成一个。但是您要做的是调用本机,然后直接在 java 代码中获取物理屏幕尺寸。如果你这样做,你可能最好也为 iOS 实现它,尽管那里不存在同样的问题(你甚至可以直接用 if/else 颤振)。
幸运的是,之前有人这样做过,因此您可以将其用作示例:https://github.com/magnatronus/flutter-displaymetrics。假设 displayMetrics 给你正确的尺寸。
希望对您有所帮助,抱歉,我没有更简单的答案给您!