有时候常常使用别人用Tabhost+其他的实现demo。单纯利用Tabhost该怎样使用呢?

以下看样例:

public class MainActivity extends TabActivity {
public TabHost tabHost; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 获取对象
tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("index").setIndicator("实时新闻")
.setContent(new Intent(this, IndexActivity.class)));
tabHost.addTab(tabHost.newTabSpec("center").setIndicator("我的空间")
.setContent(new Intent(this, MiddleActivity.class)));
tabHost.addTab(tabHost.newTabSpec("self").setIndicator("设置")
.setContent(new Intent(this, LastActivity.class)));
// 指定的当前的tab
// 通过索引指定 索引从0開始
// 即一開始要显示的是哪一页
tabHost.setCurrentTab(0); // 从零開始
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

二、效果图

(2)Tabhost选项卡置于底部的样例

採用LinearLayout布局。设置Weight属性就能够将选项卡位于底部

1、xml布局文件

<?

xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:orientation="vertical" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1.0" >
</FrameLayout> <TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
</LinearLayout> </TabHost>

2、MainActivity

public class MainActivity extends ActivityGroup
{
private TabHost mTabHost; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initTabs();
} private void initTabs()
{
mTabHost = (TabHost) findViewById(R.id.tabhost);
mTabHost.setup(this.getLocalActivityManager()); Intent intent = new Intent(this, HomepageActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("Tab1")
.setIndicator(getString(R.string.homepage_indicator), getResources().getDrawable(R.drawable.homepage_indicator_selector))
.setContent(intent)); intent = new Intent(this, BillboardActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("Tab2")
.setIndicator(getString(R.string.billboard_indicator), getResources().getDrawable(R.drawable.billboard_indicator_selector))
.setContent(intent)); intent = new Intent(this, MyLotteryActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("Tab3")
.setIndicator(getString(R.string.mylottery_indicator), getResources().getDrawable(R.drawable.mylottery_indicator_selector))
.setContent(intent)); intent = new Intent(this, MoreActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("Tab4")
.setIndicator(getString(R.string.more_indicator), getResources().getDrawable(R.drawable.more_indicator_selector))
.setContent(intent));
}
}

3、效果图

Tabhost最纯净的实现方式的更多相关文章

  1. Android 常用UI控件之TabHost(1)TabHost的两种布局方式

    TabHost是Android中的tab组件. TabHost布局文件的基本结构 TabHost下有个layout,这个layout中有TabWidget与FrameLayout.TabWidget是 ...

  2. TabHost创建的2种方式

    一.如果是自定义TabHost步骤如下 1.必须给tabHost跟标签设置一个android:id="@android:id/tabhost"> 2.必须创建TabWidge ...

  3. Android工作学习第5天之TabHost实现菜单栏底部显示

    TabHost是一个装载选项卡窗口的容器,实现分模块显示的效果.像新浪微博客户端.微信客户端都是使用tabehost组件来开发的. TabHost的组成: |---TabWidget:实现标签栏,可供 ...

  4. Android用户界面开发:TabHost

    TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout.TabWidget就是每个tab的标签,FrameLayout则是tab内容.TabHost的二种实现方式:第 ...

  5. TabHost的初步使用

    本文主要参考自:http://blog.csdn.net/wulianghuan/article/details/8588947 (里面有TabHost第二种定义的方式,继承TabActivity) ...

  6. 相当郁闷的问题,TabHost选项卡标签图标始终不出现?

    在学习Android TabHost布局过程中,很多教程告诉我,这样来显示选项卡标签的图标和文字: TapSpec spec1 = tabHost.newTabSpec("tab 1&quo ...

  7. tabhost实现android菜单切换

    做APP项目已经有半个月了.慢慢地熟悉了这个开发环境和开发套路. 虽然是摸着石头过河.但也渐渐看到了水的深度! 作为一个电商项目APP,势必会涉及究竟部菜单条的功能.自己实现这个功能的过程是崎岖的,最 ...

  8. Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld

    准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...

  9. 同步博客到cnblogs平台

    缘由 最最开始在csdn写博客,广告太多,平台暗调资源积分,退:后来使用githubpage+jeklly搭建静态博客,感觉不错,回归到安静的敲打环境.emmmm,由于是静态博客项目,虽能最大化自定义 ...

随机推荐

  1. ③bootstrap文本使用基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. HTML学习笔记 CSS文本及字体及连接及列表(a标签使用及缩进) 案例 第七节 (原创)参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. let 和const与var的不同

    1. let的作用域在代码块中仅限在当前的作用于中 { var str1 = 12; console.log(str1); let str2 = 20; console.log(str2); //20 ...

  4. ARM1

    CPU有取指周期,译码周期,执行周期包括的器件有程序计数器(CP),指令cache,数据总线,指令寄存器(IR),数据地址寄存器(AR),指令译码器,时序发生器操作控制器,控制总线,数据缓冲寄存器(D ...

  5. [转载] 《Hadoop基础教程》之初识Hadoop

    转载自http://blessht.iteye.com/blog/2095675 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用 ...

  6. Python进阶---面向对象第二弹

    python类的继承原理 一.类的继承顺序 class A(object): def test(self): print('from A') passclass B(A): # def test(se ...

  7. TCP:传输控制协议

    概述: 书中采用了8章来介绍TCP,可见其重要性.TCP是一种面向连接的.可靠的字节流服务,也就是说两方要交换数据必须先建立一个连接. TCP的信息单位称为segment.TCP对字节流的内容不作任何 ...

  8. Flash真的老了,HTML5将取代其地位

    简单讲一些网页开发的趋势吧! Flash老了 Flash是一个落后于时代的技术,靠对客户端的高资源占用率来获取传输过程的低带宽占用. Flash不再安全 Flash是一个落后于时代的技术,靠对客户端的 ...

  9. MySQL错误:2003-Can't connect to MySQL server on 'localhost'(10061 "unknown error")

    今天数据库出了一点错误之后决定重装一下,结果卡在了一个问题上,连装了5遍,加上网上各种配置教程都没能结局,错误如下图所示: 最后忽然想到会不会是因为每一次卸载的时候没有彻底卸载干净,然后就彻彻底底卸载 ...

  10. javascript权威指南pdf

    链接:https://pan.baidu.com/s/1c19qfSk 密码:j4f3