如果初始方向在Android上是横向的,则mainActivity会被破坏

时间:2011-12-21 15:35:56

标签: android screen-orientation

我正在开发一个所有活动都设置为的应用程序:

   android:screenOrientation="portrait" 

以下是发生的事情:

  

在应用开始之前,平板电脑处于纵向模式:

  • 以纵向模式创建startScreen
  • 一个导航到另一个人像屏幕
  • 一个回到startScreen - 它以纵向模式创建 - 一切正常
  

这就是当平板电脑处于横向模式时会发生的情况   应用程序启动:

  • 以纵向模式创建startScreen
  • 一个导航到另一个人像屏幕
  • 一个回到startScreen - 它在LANDSCAPE模式下创建,只在几分之一秒内立即关闭,活动被解除 - 最后活动在porttrait模式下创建

如何在LANDSCAPE模式下避免此创建只需几分之一秒,并且只能立即以纵向模式创建?

非常感谢

2 个答案:

答案 0 :(得分:1)

在活动代码中添加您的清单:android:configChanges =“orientation”。现在它不会在方向上重新启动。

这只是一个理论,但如果您首先在横向模式下看到屏幕,则可以覆盖根视图并覆盖onDraw方法。 检查画布的宽度和高度。 如果高度大于宽度,则不绘制或​​设置可见性假。 直到你收到“正确”的画布来画画。

这可能是一种矫枉过正,但我​​认为可能会这样做。

此外,还可以查找可能更改屏幕方向的更多内容: http://developer.android.com/guide/topics/manifest/activity-element.html#screen

另外一个来自API 14及以上(我认为)引起了很多问题,即“ScreenSize”。

答案 1 :(得分:0)

以纵向模式创建活动,并使用onResume方法更改为横向模式。

myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);