Показывать только определенные вкладки в Android TabHost? - PullRequest
0 голосов
/ 20 мая 2011

У меня есть TabHost с 4 вкладками, определенными в моем файле макета main.xml.Я пытаюсь настроить вкладки, добавляя только определенные вкладки в 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 Ответ

1 голос
/ 20 мая 2011

Установить видимость вкладки программно и оставить содержимое в покое:

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

Где «2» - это идентификатор скрытой вкладки, а «4» - это константа для невидимого.

...