0

我使用此代码设置主选项卡:

tabhost.setCurrentTabByTag(...);

它工作正常,但默认选项卡片段从我设置为当前选项卡的新选项卡开始的问题,我通过以下方式检查:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);

    Log.e("LOG", "Default Fragment Start, ID = 0");
}

当我运行应用程序时,我在 logcat 中看到“默认片段开始,ID = 0”,这意味着虽然我设置了当前选项卡,但默认选项卡窃取在应用程序运行时开始。

有什么建议可以解决这个问题吗?

4

1 回答 1

0

我用一个技巧解决了我的问题,我在第一个标签上添加了一个标签,然后我将它命名为 InitializationTab 之类的东西:

addTab("InitializationTab".....); // index 0
addTab("First"....); // index 1
addTab("Second"...); // index 2
addTab("Third"...); // index 3
addTab("Fourth"...); // index 4

然后我将当前选项卡设置为我想要的任何选项卡

tabHost.setCurrentTab(1);

我用这段代码隐藏它

tabHost.getTabWidget().getChildAt(0).setVisibility(View.GONE);

现在只会启动一个选项卡。

为什么我做了这一切?因为在应用程序运行的第一次,两个片段同时启动,这会使应用程序变慢。

于 2013-10-04T21:08:22.293 回答