安卓实现两个Tablehost的嵌套

接上篇博文,本篇文章继续讲解关于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,上方下方的选项卡皆可实现切换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值