代号一:以横向方向启动纵向应用,然后getDisplayWidth()



我的应用只能纵向运行,不能横向运行。对于 iOS,这是一个构建提示 (ios.interface_orientation(,工作正常。对于Android,这必须使用lockOrientation(true(在代码中设置,我将其放在public void init(Object context(中。锁定方向后,我在公共 void start(( 中调用 getDisplayWidth((。当我在横向的Android设备上启动/测试应用程序时,我遇到了问题。显然,切换方向需要时间,有时返回的显示宽度实际上是显示高度。我尝试在callSerially中使用getDisplayWidth((包装代码,但这没有帮助。我也尝试调用getDisplayHeight((并取两个值的最小值,但这不起作用,因为如果宽度作为高度返回,则状态栏高度将被扣除,我们最终得到一个显示"宽度"值太小。

结果,1( 我的启动表单(具有缩放到显示宽度的图像(首先被错误地显示 - 在等待下一个表单显示时得到纠正,以及 2( 我的 GUI 有时使用错误的显示宽度 - 因此不使用完整宽度。

我的问题是,当设备必须从横向调整为纵向时,如何确保在调用 lockOrientation(true( 后获得正确的(纵向(显示宽度。

我敢肯定,还有很多额外的边缘情况可以重现您错过的这个问题,例如多任务/并排视图等。 即使锁定方向,显示尺寸也会发生变化。

您可以执行多种操作,例如覆盖布局回调上的组件或侦听窗体大小更改事件。

相关内容

最新更新