android - 停留在方向更改的最后一个选项卡上,但不停留在应用程序启动时

标签 android tabs android-orientation savestate

在我的应用程序的主要 Activity 中,我有三个选项卡,单击它们时,会将 Activity 的 contentView 切换到不同的布局。我的问题是,当方向改变时,会自动选择第一个选项卡并加载第一个布局。

关于如何解决这个问题,我的第一个想法是将选项卡位置保存在 savedInstanceState 或 sharedPrefs 文件中,但这些解决方案之一的问题是它们也会在应用程序首次打开和 OnCreate( ) 被调用。

明确地说,我希望发生以下情况:

  • 在应用程序加载时(新 Activity ,调用 onCreate())- 加载第一个选项卡 总是
  • 应用恢复时(应用暂停后,调用 Onresume())- 加载上次打开的标签页
  • 方向改变时(改变后调用 OnCreate()?)- 加载上次打开的标签页

基本上,我试图找到一种方法来区分方向更改(女巫调用 OnDestroy() 和 onCreate())以及应用程序首次启动时的 onCreate() 和 onDestory()。

如果可能的话,我宁愿不使用 list 中的 configChanges="orientation"行,而是自己处理切换,因为我听说在处理不同的屏幕尺寸和密度等时可能会导致问题。

有什么办法可以做到这一点,还是我必须接受不同的行为?

最佳答案

onSaveInstanceState 是正确的方法。它不会在 Activity 完成后持续存在,只有当它“进入后台状态”或进行方向更改时才会持续存在。

关于android - 停留在方向更改的最后一个选项卡上,但不停留在应用程序启动时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917584/

相关文章:

Jquery 选项卡 - 使用外部 URL 链接

android - 如何让 Android 应用程序只在屏幕翻转时工作?

android - 什么是 google API 和 framework API

android - "react-native start"有效,但在 "react-native run-android"正在进行时崩溃,即使在新项目上也是如此(裸工作流)

java - 向 arrayList 添加标记会导致应用程序崩溃

android - 按下主页按钮时的调用方法

Delphi Firemonkey DX Seattle TTabControl 在 TVertScrollBox 内时无法正确重印

css - 将水平 JQuery 选项卡更改为垂直选项卡

android - ListView 在屏幕方向更改时在列表中添加了重复项

Android WebView - 在方向后调整大小而不重新加载页面