TabHost方向已更改

时间:2015-09-04 16:02:48

标签: android android-tabhost

我创建了一个包含 tabhost 的活动,其中包含3个标签,还定义了

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">

在更改方向的清单中,它有助于我在横向模式下保持相同的选项卡。但是当我为横向模式创建一个新的xml文件并将其放入 res / layout-land 时。我的问题是当我进入第二或第三个选项卡并更改为横向模式时它会调用xml在 layout-land ,但标签主机切换到第一个标签。请帮我解决此问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

最好覆盖@onSaveInstance以保存当前标签的位置。

在onCreate方法中,您可以检查位置并根据位置设置标签

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save the current position of the tab
    savedInstanceState.putInt(CURRENT_TAB, getTabHost().getCurrentTab());
    super.onSaveInstanceState(savedInstanceState);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Check for the tabPosition Value
    if (savedInstanceState != null) {
    // Restore tab position from saved state and set to TaBHost
    mCurrentTab= savedInstanceState.getInt(CURRENT_TAB);
    }
   //initialize the tabHost and tab
   tabHost.setCurrentTab(mCurrentTab);