在我的应用程序的主要 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/