2011-05-19 149 views
0

我有一个在我的main.xml布局文件中定义了4个选项卡的TabHost。我试图通过向TabHost添加指定的选项卡(即1,2和4,或1和3,或...)来设置选项卡。仅显示android TabHost中的某些选项卡?

如果我只是添加所有4个选项卡,一切看起来都很好,但如果我将4个选项中的任何一个都取出,那么我显示的内容中没有显示任何内容。

有没有人知道这可能是什么问题?

tabs = (TabHost) findViewById(R.id.tabhost); 
    tabs.setup(); 

    TabSpec mainSpec = tabs.newTabSpec("Main Tab"); 
    mainSpec.setIndicator("Main", getResources().getDrawable(R.drawable.tab_main)).setContent(R.id.mainContent); 
    tabs.addTab(mainSpec); 


    if(param1) 
    { 
     TabSpec msgSpec = tabs.newTabSpec("Tab 2"); 
     msgSpec.setIndicator("Messages", getResources().getDrawable(R.drawable.tab_message)).setContent(R.id.messageContent); 
     tabs.addTab(msgSpec); 
    } 
    if(param2) 
    { 
     TabSpec tpSpec = tabs.newTabSpec("Tab 3"); 
     tpSpec.setIndicator("Timepoints", getResources().getDrawable(R.drawable.tab_message)).setContent(R.id.timepointContent); 
     tabs.addTab(tpSpec); 
    } 
    if(param3) 
    { 
     TabSpec passSpec = tabs.newTabSpec("Tab 4"); 
     passSpec.setIndicator("Passengers", getResources().getDrawable(R.drawable.tab_message)).setContent(R.id.passengerContent); 
     tabs.addTab(passSpec); 
    } 
+0

理论上我看不出你的代码有什么问题。必须有其他的东西导致这一点。 – Squonk 2011-05-19 22:59:10

+0

嗯好吧......我的直觉是它与xml文件中定义的布局有关,但从未添加到TabHost中? – TomBomb 2011-05-19 23:01:45

+0

啊,好的。我想你可能走上正轨。尝试在自己的xml文件中为每个标签的内容定义布局。为TabHost创建一个“主”选项卡布局xml,但将内容视图保持为独立的布局。 – Squonk 2011-05-19 23:05:34

回答

1

编程设置选项卡的知名度和先不谈内容:

tabs.getTabWidget().getChildAt(2).setVisibility(4); 

其中“2”是标签的ID隐藏和“4”是常数不可见的。

+0

谢谢你,帮我。设置setVisibility(4)给了我一个黑洞。我如何让我在标签中填写的活动填满屏幕? – Erik 2011-07-11 18:33:48

相关问题