【发布时间】:2020-05-13 10:14:24
【问题描述】:
我的应用只能纵向运行,不能横向运行。对于 iOS,这是一个可以正常工作的构建提示 (ios.interface_orientation)。对于 Android,这必须使用 lockOrientation(true) 在代码中设置,我将其放入 public void init(Object context)。锁定方向后,我在 public void start() 中调用 getDisplayWidth()。当我在横向的 Android 设备上启动/测试应用程序时,我遇到了问题。显然切换方向需要时间,有时返回的显示宽度实际上是显示高度。我尝试在 callSerially 中使用 getDisplayWidth() 包装代码,但这无济于事。我也尝试调用 getDisplayHeight() 并取两个值中的最小值,但这不起作用,因为如果将宽度作为高度返回,则状态栏高度会被扣除,我们最终会得到一个显示“宽度”值太小。
因此,1) 我的初始表单(具有缩放到显示宽度的图像)首先被错误地显示 - 在等待下一个表单显示时得到纠正,并且 2) 我的 GUI 有时使用显示宽度错误 - 因此未使用全宽。
我的问题是,当设备必须从横向调整为纵向时,如何确保在调用 lockOrientation(true) 后获得正确的(纵向)显示宽度。
【问题讨论】:
标签: android width codenameone display landscape-portrait