如果 Android 上的初始方向是横向,则 mainActivity 会被销毁
mainActivity gets distroyed if initial orientation is landscape on Android
我正在开发一个所有活动都设置为的应用程序:
android:screenOrientation="portrait"
|
会发生以下情况:
Tablet is in portrait mode BEFORE the app starts:
- startScreen 以纵向模式创建
- 一个导航到另一个纵向屏幕
- 一个回到 startScreen - 它是在纵向模式下创建的 - 一切正常
And this is what happens when the tablet is in landscape mode when
the app starts:
- startScreen 以纵向模式创建
- 一个导航到另一个纵向屏幕
- 回到 startScreen - 它是在 LANDSCAPE 模式下创建的,只是在几分之一秒内立即关闭,并且活动被破坏 - 然后最终活动在纵向模式下创建
我怎样才能避免在横向模式下在几分之一秒内创建这种创建并立即仅在纵向模式下创建?
非常感谢
在活动标签中添加清单:android:configChanges="orientation"。现在它不会按方向重新启动。
这只是一个理论,但是如果您首先以横向模式查看屏幕,您也许可以覆盖您的根视图并覆盖 onDraw 方法。
检查你的画布宽度和高度。
如果高度大于宽度,则不要绘制或设置可见性为假。
直到您收到"正确的"画布以进行绘制。
这可能有点矫枉过正,但我??认为可以做到。
还可以在这里寻找更多可能改变屏幕方向的东西:
http://developer.android.com/guide/topics/manifest/activity-element.html#screen
还有一个来自 API 14 及更高版本的(我认为)给我带来了很多问题,那就是 "ScreenSize"。
相关讨论
- 现在好多了 - 至少 initialScreen 活动不会被破坏 - 但是,它仍然首先创建风景然后转向肖像......(顺便说一下,我使用的是 3.1 级别 12,以防万一)
- 那很奇怪。它创建然后销毁它(经历活动生命周期)或者你只是看到它一秒钟然后它进入肖像(不经历生命周期)?此外,我编辑了我的答案并添加了另一个可能导致重新启动的内容,并且可能修复了先看不到风景的问题。
以纵向模式创建您的 Activity,并在
myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
相关讨论
- 我不明白 - 我希望我的活动保持纵向 - 而不是横向。无论如何,我创建了 onResume 并设置为纵向模式,但屏幕仍然首先以横向创建,然后被破坏,以纵向重新创建......
-
当您在
onCreate 中执行此操作时会发生什么?它仍然切换吗?
THE END
二维码