没有TabHost的Android TabWidget,带有自定义操作

时间:2012-07-25 13:57:38

标签: android android-layout android-tabs

可以在没有TabHost的情况下使用TabWidget吗?我想要像旧版手机的ActionBar故障恢复选项卡导航一样。

所以我只想显示用户标签并听取点击操作,我会在其中获得有效的标签ID。没什么。

我知道在常见情况下,TabsNavigatin for actionBar仅用于浏览Fragments。但我很容易避免碎片。 :

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) {

    }
}

但是我找不到如何向TabWidget添加标签按钮;

2 个答案:

答案 0 :(得分:0)

没有。没有选项卡主机的选项卡小部件就像使用选项卡的按钮一样。您将对标签导航进行操作。

答案 1 :(得分:0)

这是解决方案,没有tabHost的TabWidget

https://github.com/muratonnet/android-SingleTabWidget