【问题标题】:Screen Orientation Changing Handler fails in TabActivityTabActivity 中的屏幕方向更改处理程序失败
【发布时间】:2012-06-26 10:45:10
【问题描述】:

我正在开发一个带有 TabHost SDK 7 的 Android 应用程序。

我的问题是屏幕方向更改处理程序无法完成这项工作。 这是场景:

  • 在纵向和横向之间切换时,屏幕更新良好,反之亦然。
  • 每当黑屏(屏幕保护程序)打开或我按下锁定按钮

我所说的“未能”更新屏幕的意思是:

  • 在横向模式下,我按下锁定按钮。之后,我解锁 它在纵向模式下,纵向屏幕完美更新。但, 一旦我旋转到横向模式,屏幕无法更新 横向模式。横屏模式将再次完美更新 在我再次旋转到纵向然后再次旋转到 景观。在纵向模式下,我按下锁定按钮,没有 发生了上述失败的情况。

这是我使用的方法:

  • 我申请:android:configChanges="keyboardHidden|orientation" 在每个场景中(TabActivity 和它的每个子项)
  • 我在每个子屏幕中申请:onConfigurationChanged()
  • 我没有使用任何景观资源(布局资源和可绘制土地)。因此,我只对屏幕使用一种 xml 布局(横向和纵向)

对我的问题有什么建议或解决方法吗?我会感激并尝试每一个建议。谢谢 :D

【问题讨论】:

  • hay Maria 你有什么解决办法吗?
  • 没有。不幸的是还没有

标签: android screen-orientation tabactivity


【解决方案1】:

您的解决方案应该是正确处理配置更改。使用 configChanges 只是针对非常极端的情况的一种优化,但是您仍然需要为保存 Activity 状态和销毁 Activity 以减轻内存压力的情况做好准备。

在您的活动中:

@Override
public void onSaveInstanceState(Bundle outState) {
    // Put any temporary state for this Activity instance
    // into the outState bundle
}

然后在onCreate()中:

@Override
public void onCreate(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        // Retrieve and reassign any state that you saved
    }
}

另见Handling Runtime Changes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2011-06-13
    相关资源
    最近更新 更多