实例讲解Android应用开发中TabHost的使用要点

2019-12-10 18:18:32王振洲

首先,应该声明TabHost,然后用LayoutInflater过滤出布局来,给TabHost加上含有Tab页面的FrameLayout

private TabHost myTabhost;
myTabhost=this.getTabHost();//从TabActivity上面获取放置Tab的TabHost
LayoutInflater.from(this).inflate(R.layout.main, myTabhost.getTabContentView(), true);
//from(this)从这个TabActivity获取LayoutInflater
//R.layout.main 存放Tab布局
//通过TabHost获得存放Tab标签页内容的FrameLayout
//是否将inflate 拴系到根布局元素上
myTabhost.setBackgroundColor(Color.argb(150, 22, 70, 150));
//设置一下TabHost的颜色

接着,在TabHost创建一个标签,然后设置一下标题/图标/标签页布局

myTabhost.addTab(myTabhost.newTabSpec("TT")// 制造一个新的标签TT
   .setIndicator("KK",getResources().getDrawable(R.drawable.ajjc))
            // 设置一下显示的标题为KK,设置一下标签图标为ajjc
            .setContent(R.id.widget_layout_red));
    //设置一下该标签页的布局内容为R.id.widget_layout_red,这是FrameLayout中的一个子Layout

标签切换事件处理,setOnTabChangedListener

myTabhost.setOnTabChangedListener(new OnTabChangeListener(){
      @Override
      public void onTabChanged(String tabId) {
        // TODO Auto-generated method stub
      }      
    });

各个标签页的动态MENU 
先把在XML中设计好的MENU放到一个int数组里

private static final int myMenuResources[] = { R.menu.phonebook_menu,
      R.menu.addphone_menu, R.menu.chatting_menu, R.menu.userapp_menu };