我知道您可以使用:android:configChanges="orientation"来消除方向更改时的重绘。虽然它不在我的应用程序中。我读到可能有一种方法需要用它覆盖才能使其工作。但我认为这可能有点矫枉过正。
当我将屏幕从纵向旋转到横向(或其他方式)时,只有两个问题是我不希望发生的。
如果用户触摸 EditText,键盘会弹出。你改变方向,它会自动隐藏。我想随身携带软键盘。
我有一个 ListView 加载从 MySQL 数据库填充的数据。它通过 AsynTask 执行此操作。当我切换方向时,我不希望调用此任务。
我可以隔离这两个问题,还是第一个选项 (configChanges) 就是答案?
注意:其中一些是列表 Activity ;但最大的是一个带有 Viewpager 的 FragmentActivity,以及一个 Fragment/ListFRagment(带有标签)内部类。
最佳答案
当方向改变时,Activity 被销毁并重新创建。如果使用 configChanges
,您将覆盖的方法是 onConfigurationChanged
。
对于键盘问题,听起来您只需要跟踪它的状态并通过 Activity.onCreate
中传递的 Bundle
恢复它。
对于第二个问题,您可以检查 onSavedInstanceState == null
是否需要运行 AsyncTask
。您需要在 onPause
中将所有数据保存到 Bundle
。
关于android - 解决屏幕方向变化的两个具体问题 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917072/