告诉FragmentTabHost在触摸之前不要加载任何标签

时间:2014-02-13 19:45:45

标签: android fragment-tab-host

嘿所有,快速提问..

现在我有一个带有4个选项卡的fragmenttabhost,默认情况下,在启动应用程序时会加载选项卡0,这是有道理的。但是,在触摸特定选项卡之前,我不想加载任何选项卡。仅仅因为tab0做了大量的工作,除非被触摸,否则不需要做。

我虽然将一个true / false传递给bundle来显示或不显示:

mTab​​Host.addTab(createTab(“tab1”,“test1”,R.drawable.ico1),TabClass1.class,false); mTabHost.addTab(createTab(“tab2”,“test2”,R.drawable.ico2),TabClass2.class,false); mTabHost.addTab(createTab(“tab3”,“test3”,R.drawable.ico3),TabClass3.class,false); mTabHost.addTab(createTab(“tab4”,“test4”,R.drawable.ico4),TabClass4.class,false);

所以在oncreateview中看起来像这样:

public View  onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle extras = getArguments();  
    //pseudo
    if(true )return inflater.inflate(R.layout.tab_messages, container, false);
    else return null;
}

但似乎应该有一种更简单的方式来说“好吧,我的标签不会加载它们直到触摸”

我尝试将curretTab设置为-1但是没有做任何事情。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

中完成工作
setUserVisibleHint()

如果在onCreateView之前调用它可能会有一些问题,或者您可能希望在调用onResume之前不要获取这些事件。 使用此片段扩展您的标签。如果系统调用setUserVisibleHint,它将在onResume之前调用onVisible,并提供后续更新。

UserVisibleHintFragment

中做你的东西
onVisible()

虽然我不确定TabHost会调用setUserVisibleHint(至少ViewPager会这样做)