嘿所有,快速提问..
现在我有一个带有4个选项卡的fragmenttabhost,默认情况下,在启动应用程序时会加载选项卡0,这是有道理的。但是,在触摸特定选项卡之前,我不想加载任何选项卡。仅仅因为tab0做了大量的工作,除非被触摸,否则不需要做。
我虽然将一个true / false传递给bundle来显示或不显示:
mTabHost.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但是没有做任何事情。
任何帮助都会很棒!
答案 0 :(得分:0)
在
中完成工作setUserVisibleHint()
如果在onCreateView之前调用它可能会有一些问题,或者您可能希望在调用onResume之前不要获取这些事件。 使用此片段扩展您的标签。如果系统调用setUserVisibleHint,它将在onResume之前调用onVisible,并提供后续更新。
在
中做你的东西onVisible()
虽然我不确定TabHost会调用setUserVisibleHint(至少ViewPager会这样做)