码迷,mamicode.com
首页 > 其他好文 > 详细

如何实现两个Tablehost的嵌套

时间:2015-08-20 20:57:24      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:android   布局   tabhost   界面   

接上篇博文,本篇文章继续讲解关于Tabhost的一些操作,主要有以下两个要点:

1、将最外边的Tabhost的选项卡放置到界面的底部,为实现嵌套做准备。

2、实现两个Tabhost的嵌套,将其作为两级菜单内容显示的载体。

一旦实现这个效果以后,我们可以利用Tabhost为载体实现应用程序随下方的点击来切换一级菜单,随上方的点击来切换二级菜单。下来具体看一下实现步骤:

1)在layout中添加Tabhost,并且将tabs拖动到tabcontent的下方,此时预览界面的tabs将会消失,不要着急

技术分享

2)将tabcontent的权重设为1,此时我们会看见tabs重新显示在了界面上,并且已经置于界面的下方,我们可以根据自己的需要对其高度进行设置。这里为方便起见将该Tabhost所在的Activity称作“父Tabhost”。

技术分享

3)新建一个layout,添加Tabhost控件,我们将该layout称作“子tabhost”。

      新建一个类Sontabhost.java,继承Activity。在onCreate()方法中指定视图;

setContentView(R.layout.sontab);//sontab即为当前layout:子tabhost
      为新的tabhost添加选项卡:

TabHost tabHost = (TabHost) findViewById(R.id.tabhost1);
		tabHost.setup();

		tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("特色专题")
				.setContent(R.id.tab1));

		tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("游戏分类")
				.setContent(R.id.tab2));

		tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("应用分类")
				.setContent(R.id.tab3));
		tabHost.setCurrentTab(0);
4) 去MainActivity.java中添加“父Tabhost”的选项卡,这里的方法虽然为Tabhost设置了图片和文字,但是却只能显示出文字,如果需要将两者同时显示,请参照我的上一篇文章。

tab.addTab(tab.newTabSpec("选项卡二").setIndicator("专题分类", getResources().getDrawable(R.drawable.ic_launcher)).setContent(new Intent(this, Sontabhost.class)));//这里代码只贴一个的,用法相近可以自己体会
在上边的setContent()中新建一个意图Intent,让它指向我们在第3步创建的类Sontabhost,至此,我们便完成了两个tabhost的嵌套,大致效果展示如下:

技术分享

点击下方的专题分类即可显示子Tabhost,上方下方的选项卡皆可实现切换。

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何实现两个Tablehost的嵌套

标签:android   布局   tabhost   界面   

原文地址:http://blog.csdn.net/u012193089/article/details/47812873

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!