Android TabWidget不带TabHost和自定义操作

Android TabWidget不带TabHost和自定义操作,android,android-layout,android-tabs,Android,Android Layout,Android Tabs,不使用TabHost是否可以使用TabWidget?我想为旧款手机的ActionBar故障回复提供类似标签导航的功能 所以我只想显示用户标签,并监听点击操作,在这里我可以得到活动标签ID。没有更多 我知道在一般情况下,TabsNavigatin for actionBar只用于浏览片段。但我很容易避免碎片 class mTabListener implements ActionBar.TabListener { private Screen screen; public mT

不使用TabHost是否可以使用TabWidget?我想为旧款手机的ActionBar故障回复提供类似标签导航的功能

所以我只想显示用户标签,并监听点击操作,在这里我可以得到活动标签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) {

    }
}
类mTabListener实现ActionBar.TablListener{
私人屏幕;
公共mTabListener(屏幕){
this.screen=屏幕;
}
已重新选择公共无效页签(页签,碎片事务){
屏幕。已重新选择选项卡(选项卡,英尺);
}
已选择的公共事务(选项卡,碎片事务ft){
屏幕。选择的屏幕(选项卡,英尺);
}
已选择公共空页(选项卡,碎片事务ft){
所选屏幕(选项卡,英尺);
}
}
公共抽象类屏幕扩展活动{
受保护的void addTab(字符串标题、int-what、布尔值选中){
如果(Global.API<11)
返回;
ActionBar=getActionBar();
Tab Tab=bar.newTab()
.setTag(新整数(什么))
.SetTableListener(新的mTabListener(此))
.setText(标题);
bar.addTab(选项卡,选中);
}
已重新选择公共void ontaber(ActionBar.Tab选项卡,FragmentTransaction ft){
}
已选择的公共事务(ActionBar.Tab选项卡,FragmentTransaction ft){
整数what=(整数)tab.getTag();
(什么);
}
已选择公共无效OnTab(ActionBar.Tab选项卡,FragmentTransaction ft){
}
已选择公共无效选项卡(int what){
}
}

但我找不到如何向TabWidget添加选项卡按钮

否。没有选项卡主机的选项卡小部件就像是在选项卡上使用按钮。您必须执行选项卡导航的操作

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


这正是我想要的。我不需要多个活动,我只需要Tab控件(它控制我自己的组件),只需要放下一些按钮,听它的事件,比如聚焦,单击,然后操纵视图。我认为你可以使用Tabhost来实现你的目的,而不是重新实现同样的东西。我不需要操纵视图。我需要改变一些信息,我必须保持标准的外观和感觉。一种方法是重新发明轮子,让我自己的塔布斯威吉特(TabsWidget)更具适应性。但也许有更简单的方法?