留在方向更改的最后一个标签上,但不在应用开始时

时间:2012-08-11 20:54:47

标签: android tabs android-orientation savestate

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

我首先想到的是如何解决这个问题,只需将选项卡位置保存在savedInstanceState或sharedPrefs文件中,但其中一个解决方案的问题是它们也会在首次打开应用程序时发生并且OnCreate(被称为。

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

  • 在App load上(新活动,onCreate()调用) - 加载第一个选项卡 总是
  • 在应用程序恢复上(应用程序暂停后,Onresume()调用) - 负载最后打开的选项卡
  • 在方向更改时(更改后,OnCreate()调用?) - 加载上次打开的选项卡

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

如果它可能,我宁愿不在我的清单中的configChanges =“orientation”行,并自己处理开关,因为我听说在处理不同的屏幕尺寸和密度等时可能会出现问题。

有没有办法实现这一目标,还是我必须解决不同的行为?

1 个答案:

答案 0 :(得分:2)

onSaveInstanceState是正确的方法。只有在“进入背景状态”或进行方向更改时,它才会在活动结束后持续存在。