2012-07-25 78 views
4

是否可以在沒有TabHost的情況下使用TabWidget?我想爲諸如Tabs navigation之類的舊手機的ActionBar故障回覆。Android TabWidget沒有自定義動作的TabHost

所以我只想顯示用戶選項卡並監聽點擊操作,我在哪裏獲得活動標籤ID。而已。

我知道在一般情況下,TabsNavigatin for actionBar僅用於瀏覽片段。但我很容易避免片段。 :

class mTabListener implements ActionBar.TabListener { 

    private Screen screen; 

    public mTabListener(Screen screen) { 
     this.screen = screen; 
    } 

    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
     screen.onTabReselected(tab, ft); 
    } 

    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     screen.onTabSelected(tab, ft); 
    } 

    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     screen.onTabUnselected(tab, ft); 
    } 

} 


public abstract class Screen extends Activity {  
protected void addTab(String title, int what, boolean selected) { 
    if (Global.API < 11) 
     return; 

    ActionBar bar = getActionBar(); 
    Tab tab = bar.newTab() 
     .setTag(new Integer(what)) 
     .setTabListener(new mTabListener(this)) 
     .setText(title); 

    bar.addTab(tab, selected); 
} 

    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { 

    } 

    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
     Integer what = (Integer)tab.getTag(); 
     tabSelected(what); 
    } 

    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { 

    } 

    public void tabSelected(int what) { 

    } 
} 

但我找不到如何將Tab按鈕添加到TabWidget;

回答

0

沒有標籤主機的標籤小部件就像使用按鈕的標籤。你將會操作標籤導航。

+0

這正是我想要的。我不需要多個活動,我只需要Tab控件(它可以控制我自己的組件) – neworld 2012-07-25 14:04:24

+0

嗯,只需要點擊一些按鈕,然後聽取其焦點,點擊和操作視圖等事件。我認爲你可以使用Tabhost來達到你的目的,而不是重新實現相同的目的。 – 2012-07-25 15:09:48

+2

我不需要操縱觀點。我需要改變一些信息,我必須保持標準的外觀和感覺。一種方法是重新發明輪子並製作我自己的TabsWidget,它更具適應性。但也許有更簡單的方法來做到這一點? – neworld 2012-07-25 15:21:51