打击屏幕方向变化的两个具体问题(Android)

时间:2012-08-11 19:37:48

标签: android screen-orientation

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

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

  1. 如果用户触摸EditText,则会弹出键盘。你移动方向,它会自动隐藏。我想保持软键盘的骑行。

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

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

    注意:其中一些是列表活动;但最重要的是带有Viewpager的FragmentActivity,以及里面的Fragment / ListFRagment(带制表符)。

1 个答案:

答案 0 :(得分:1)

当方向更改时,活动将被销毁并重新创建。如果使用configChanges,您要覆盖的方法是onConfigurationChanged

对于键盘问题,您只需跟踪其状态并通过Bundle中传递的Activity.onCreate恢复该状态。

对于第二个问题,您可以检查onSavedInstanceState == null是否需要运行AsyncTask。您需要将所有数据保存到Bundle中的onPause