android - 解决屏幕方向变化的两个具体问题 (Android)

标签 android screen-orientation

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

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

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

  2. 我有一个 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/

相关文章:

javascript - 为 Phonegap/Cordova iOS 应用强制执行正确的方向横向模式

android - Viewflipper Receiver 在 2.1 和 2.2 中方向改变时未注册错误

css - 自 Chrome 版本 50.xx 起,高度标签不起作用

css - 方向更改后 iframe 的宽度未更新

iphone - UINavigationController 中的 viewController 是否可以有不同的方向?

android - 为什么 TableView (UITableView) 必须有独立的源对象来提供数据?

android - android中的service、intentService有什么区别?

android - 升级错误后Android Studio “Gradle sync failed: …”

android - TextView 不会将其内容居中

java - android异常NetworkOnMainThreadException(已经使用了asyncTask但仍然错误)