只显示android TabHost中的某些标签?

时间:2011-05-19 22:04:33

标签: android layout android-tabhost

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

如果我只添加所有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);
    }

1 个答案:

答案 0 :(得分:1)

以编程方式设置标签可见性并保留内容:

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

其中“2”是要隐藏的标签的ID,“4”是不可见的常量。