1

我知道你可以使用这个: android:configChanges="orientation" 来消除方向变化的重绘。虽然它不在我的应用程序中。我读过可能有一种方法需要您覆盖它才能使其工作。但我认为这可能是矫枉过正。

当我将屏幕从纵向旋转到横向(或以其他方式)时,只有两个我不想发生的问题。

  1. 如果用户触摸 EditText,则会弹出键盘。你改变方向,它会自动隐藏。我想随身携带软键盘。

  2. 我有一个从 MySQL 数据库填充的 ListView 加载数据。它通过一个 AsynTask 来做到这一点。当我切换方向时,我不希望调用此任务。

我可以隔离这两个问题,还是第一个选项(configChanges)是答案?

注意:其中一些是列表活动;但最大的是一个带有 Viewpager 的 FragmentActivity,以及一个 Fragment / ListFRagment(带标签)内部类。

4

1 回答 1

1

当方向改变时,Activity 被销毁并重新创建。configChanges如果使用is ,您将覆盖的方法onConfigurationChanged

对于键盘问题,听起来您只需要跟踪它的状态并通过Bundle传入的Activity.onCreate.

对于第二个问题,您可以检查是否onSavedInstanceState == null确定是否需要运行AsyncTask. 您需要将任何数据保存BundleonPause.

于 2012-08-11T19:59:27.770 回答