【问题标题】:problem with onConfigurationChanged in TabActivityTabActivity 中的 onConfigurationChanged 问题
【发布时间】:2011-09-18 23:49:46
【问题描述】:

我在选项卡中有 TabActivity 和其他三个活动。在清单文件中,我有一行:

android:configChanges="orientation|keyboardHidden|keyboard"

在 TabActivity 的 <activity> 标记以及其他三个活动中。我还在我的所有活动中覆盖了onConfigurationChanged(Configuration newConfig) 方法。它几乎在所有情况下都能正常工作。之后手机屏幕仅在横向模式下显示为空白,我点击了主页按钮,接下来我想更改方向,方法 onConfigurationChanged 尚未被调用。

我使用过 Toast 类,我知道此时已调用 TabActivity 的唯一方法 onConfigurationChanged,但未调用选项卡中当前活动的此方法。但是,当我再次更改方向时,活动选项卡中当前活动的 onConfigurationChanged 方法已被调用。我该如何修复这个错误?我的代码可以正常工作,但在这种情况下不行。

我注意到当我在 TabActivity 中切换选项卡并更改方向时会出现类似的问题。但现在我无法解释它什么时候起作用,什么时候不起作用。我陷入困境。我知道 TabActivity 的 onConfigurationChanged 方法总是在调用。但这种在选项卡中进行活动的方法 - 并非总是如此。

【问题讨论】:

  • 如果我理解正确,您使用 toast 来通知您配置更改。我建议调试应用程序并在onConfigurationChanged 上设置断点,以验证该函数确实没有在您期望的时候被调用。
  • 是的,我正在使用 Toasts 来通知我配置更改。我已经在onConfigurationChanged 上使用断点调试了我的应用程序。如果我的手机处于横向模式,设备被锁定,并且我在纵向模式下解锁设备并将方向更改为横向,那么这个功能确实没有被调用,现在onConfigurationChanged 方法还没有被调用调用。
  • 我曾希望问题只是通过反映更改,但它似乎更复杂。如果您只能通过锁定/解锁来重现它,您可以手动检查onResume() 中的配置。恐怕我没有与您的问题相关的任何其他建议。
  • 如果您满足以下条件,则不会调用回调: 1.) 切换到另一个选项卡 (rotation=0) 2.) 旋转 (rotation=90) 3.) 返回原始选项卡 (rotation= 90) 4.) 再次旋转 (rotation=0) ... 似乎活动正在检查更改的旋转,但没有得到由其他选项卡引起的事件。

标签: android android-tabhost tabactivity android-configchanges


【解决方案1】:

对我来说,这是 Android TabActivity 中未修复的错误。现在,在 Android 中不推荐使用 Tabs Android 引入了 Fragments 来代替 Tabs。所以显然标签的问题已经消失了。问题已经被掩盖了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多