代码改变世界

TabHost的两种实现形式

2012-08-22 16:24  张智清  阅读(532)  评论(0编辑  收藏  举报
要去实现TabHost,主要有两种方法:
        1、各选项内容在布局文件中定义。
        2、主Activity类继承TabActivity;
        3、用getTabHost()方法获取TabHost
    4、指定TabHost选项卡的Content布局界面:LayoutInflater.from(this).inflate(界面布局id,tabHost.getTabContentView(),true)
    5、添加各个选项卡(这里要指定选项卡Tag、显示标签样式、选项卡容纳的内容)
    6、监听选项卡更改事件 TabHost.setOnTabChangedListener
注意:这种直接继承自TabActivity类实现的Tab选项卡,原则上无法改变系统自身的Tab标签样式,但可以选择隐藏系统Tab的某些东西,如隐藏TabWidget而用自定义的一组RadioButton来代替Tab标签。

      1、直接在布局文件中定义TabHost,xml布局文件中必须有TabHost、TabWidget、FrameLayout这三个标签元素,而且:
  注意:TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是   @android:id/tabcontent
   2、主Activity类仍然继承普通的Activity,代码中主要片段:
  
// 获取TabHost  
TabHost tabHost = (TabHost) findViewById(R.id.tabs);  
tabHost.setup();  
// 设置选项卡  
// 参数:是选项卡的标签  
TabSpec parentSpec = tabHost.newTabSpec("parent");  
parentSpec.setIndicator("基类",  
  this.getResources().getDrawable(R.drawable.announcements256));  
parentSpec.setContent(R.id.tab_1);  
  
TabSpec subSpec = tabHost.newTabSpec("sub");  
subSpec.setIndicator("子类",  
    this.getResources().getDrawable(R.drawable.content256));  
subSpec.setContent(R.id.tab_2);  
  
tabHost.addTab(parentSpec);  
tabHost.addTab(subSpec);