我使用此代码设置主标签:
tabhost.setCurrentTabByTag(...);
它工作正常,但是默认选项卡片段以我设置为当前选项卡的新选项卡开头的问题,我通过以下方式检查:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
Log.e("LOG", "Default Fragment Start, ID = 0");
}
当我运行应用程序时,我在logcat“Default Fragment Start,ID = 0”中看到,这意味着虽然我设置了当前选项卡,但是当应用程序运行时,默认选项卡窃取开始了。
有任何解决此问题的建议吗?
答案 0 :(得分: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);
现在只会启动一个标签。
为什么我这样做了?因为在第一次应用程序运行时,两个片段同时启动,因此可以使应用程序变慢。