android TabHost

先看一下效果:
[img]http://dl2.iteye.com/upload/attachment/0102/2894/fe1c3013-7a80-3073-93a4-e85ebda8bab2.png[/img]


[b]TabHost是整个Tab的容器[/b],包括两部分:[b]TabWidget[/b]和[b]FrameLayout[/b]。TabWidget就是每个tab的标签,FrameLayout则是tab内容。

[b]TabHost的二种实现方式:[/b]

第一种:继承TabActivity
第二种:只是单纯的继承Activity类


[b]下面是实现的效果:[/b]

第一种:继承TabActivity

1、如果我们使用extendsTabAcitivty,如同ListActivity,TabHost必须设置为 @android:id/tabhost
2、TabWidget必须设置android:id为@android:id/tabs
3、FrameLayout需要设置android:id为@android:id/tabcontent


布局文件 activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0.0dp"
android:layout_weight="1.0"
android:background="@android:color/white">
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>



下面是继承TabActivity
public class MainActivity extends TabActivity{

TabHosttabHost ;
RadioGroupradioGroup;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tabHost =getTabHost();
tabHost.addTab(
tabHost.newTabSpec("trends")
.setIndicator("动态")
.setContent(newIntent(MainActivity.this,TrendsActivity.class)));

tabHost.addTab(
tabHost.newTabSpec("groups")
.setIndicator("群组")
.setContent(newIntent(MainActivity.this,GroupsActivity.class)));
}

}



第二种:不继承任何类在代码里加载
布局文件 和上面一样 只是TabHost 的id 换为其他
activity_main.xml

继承Activity类
public class MainActivity extends ActivityGroup{

TabHost tabHost ;
RadioGroupradioGroup;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = (TabHost)findViewById(R.id.m_tabhost);
//如果通过findViewById得到TabHost一定要调用 TabHost.setup();
LocalActivityManagerlocalAcManager = new LocalActivityManager(MainActivity.this,true);
localAcManager.dispatchCreate(savedInstanceState);
tabHost.setup(localAcManager);
tabHost.addTab(tabHost.newTabSpec("trends").setIndicator("动态").setContent(newIntent(MainActivity.this,TrendsActivity.class)));
tabHost.addTab(tabHost.newTabSpec("groups").setIndicator("群组").setContent(newIntent(MainActivity.this,GroupsActivity.class)));
}

}



两种介绍完了。但系统提供的TabHost不好看,修改很难...
看了下别人的 大概是这样修改的,就第二种方法而言,其他不改,把TabWidget空间变为不可见,然后自己弄些控件替代。
  <TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>



更多参考:

[url=http://nodebook.info/book/view?bid=5354725719980e913e9be3f1]http://nodebook.info/book/view?bid=5354725719980e913e9be3f1[/url]

[url=http://www.apkbus.com/android-82426-1-1.html]http://www.apkbus.com/android-82426-1-1.html[/url]

[url=http://www.apkbus.com/android-720-1-1.html]http://www.apkbus.com/android-720-1-1.html[/url]


[img]http://dl2.iteye.com/upload/attachment/0102/2900/b7ffaefc-c41c-3fb4-867f-6d529a5ae7dc.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值