`
dcj3sjt126com
  • 浏览: 1877629 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TabHost用法

 
阅读更多

通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程。

TabHostActivity.java

public class TabHostActivity extends TabActivity {

    private TabHost tabHost;

    private Intent certificateIntent;

    private Intent feeIntent;

    private Intent scoreIntent;

    private Intent studyIntent;

    private Intent moreIntent;

 

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       tabHost = getTabHost();

       initIntent();

       addSpec();

    }

    /**

     * 初始化各个tab标签对应的intent

     */

    privatevoid initIntent() {

       studyIntent = new Intent(this, StudyActivity.class);

       scoreIntent = new Intent(this, ScoreActivity.class);

       feeIntent = new Intent(this, FeeActivity.class);

       certificateIntent = new Intent(this, CertificateActivity.class);

       moreIntent = new Intent(this, MoreActivity.class);

    }

    /**

     * tabHost添加各个标签项

     */

    privatevoid addSpec() {

      tabHost.addTab(this.buildTagSpec("tab_study",

R.string.study_progress,R.drawable.account01studyIntent));

    tabHost.addTab(this.buildTagSpec("tab_score",

R.string.test_score,R.drawable.account02scoreIntent));

        tabHost.addTab(this.buildTagSpec("tab_fee",

R.string.fee_pay,R.drawable.account03feeIntent));

       tabHost.addTab(this.buildTagSpec("tab_certificate",  R.string.certificate_grant,R.drawable.accountcertificateIntent));

       tabHost.addTab(this.buildTagSpec("tab_more", R.string.more,

              R.drawable.account05moreIntent));

    }

    /**

     * 自定义创建标签项的方法

     * @param tagName 标签标识

     * @param tagLable 标签文字

     * @param icon  标签图标

     * @param content 标签对应的内容

     * @return

     */

    private TabHost.TabSpec buildTagSpec(String tagName, int tagLable,

           int icon, Intent content) {

       returntabHost

              .newTabSpec(tagName)

              .setIndicator(getResources().getString(tagLable),

                     getResources().getDrawable(icon)).setContent(content);

    }}

运行结果如下图所示

 

 

 

我们发现标签位置处于界面上方,但是我们看到的很多应用的标签都处于界面底部。

如下图所示

 

 

 

我们要实现这种效果只需要TabActivity的默认布局覆盖即可。新布局只需将标签和标签对应内容的相对位置调换一下就可以了,这里是用相对布局将标签对应内容的位置放到了标签的上方。不要改动id(会抛异常,提示必须要用指定的id)。不要忘了在onCreate()里设置新布局将TabActivity的默认布局覆盖。

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

setContentView(R.layout.tab);

       tabHost = getTabHost();

       initIntent();

       addSpec();

    }

tab.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- TabHost组件id值不可变-->

<TabHostxmlns:android=http://schemas.android.com/apk/res/android

    android:id="@android:id/tabhost"

    android:layout_height="fill_parent"

    android:layout_width="fill_parent">

   

    <RelativeLayout android:orientation="vertical"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent">

      

       <!-- TabWidget组件id值不可变-->

       <TabWidget android:id="@android:id/tabs"

           android:layout_width="fill_parent"

           android:layout_height="wrap_content"

           android:layout_alignParentBottom="true">

       </TabWidget>

      

       <!-- FrameLayout布局,id值不可变-->

       <FrameLayout android:id="@android:id/tabcontent"

           android:layout_width="fill_parent"

           android:layout_height="fill_parent"

           android:layout_above="@android:id/tabs">

       </FrameLayout>

      

    </RelativeLayout>

</TabHost>

 

通常在项目中我们都会有一个自定义的Activity基类,我们会让所有的界面Activity去继承这个基类。但是要使用TabHost就要继承TabActivity,所以我们可以定义两个基类,一个是普通Activity界面的基类,另一个是包含TabHost界面的基类,让这个基类继承TabActivity即可。

 

转自:http://www.cnblogs.com/wader2011/archive/2011/10/11/2207670.html

分享到:
评论

相关推荐

    android tabhost用法 源码

    下面将详细介绍TabHost的使用方法,以及如何通过源码进行理解和实践。 一、TabHost的结构与工作原理 TabHost主要由两个核心组件组成:TabWidget和FrameLayout。TabWidget显示了可点击的标签,而FrameLayout用于...

    TabHost使用方法

    ### TabHost 使用方法详解 #### 一、TabHost 概述 TabHost 是 Android 提供的一个用于实现标签式导航的控件,它可以帮助开发者轻松地创建具有多个标签页的应用程序界面。通过 TabHost,用户可以在不同的标签页之间...

    Android TabHost用法详解

    Android TabHost用法详解,非常好的实例

    tabhost使用方法

    下面将详细介绍TabHost的使用方法,以及如何通过它来构建用户友好的多页面应用。 1. TabHost的基本结构: TabHost主要由两个组件组成:TabWidget和FrameLayout。TabWidget显示各个标签,而FrameLayout用于展示被...

    tabHost用法

    使用`TabHost.setup()`方法初始化TabHost,这个方法会将TabHost的默认布局设置为包含`TabWidget`和`FrameLayout`。 3. **添加Tab** 通过`TabHost.newTabSpec()`创建一个TabSpec,然后设置它的标签文字、图标以及...

    andorid中TabHost的使用

    在Android开发中,TabHost...总结,TabHost是构建多标签界面的关键组件,掌握其使用方法对于开发高效、用户友好的Android应用至关重要。结合源码理解和工具辅助,能更好地优化和调试TabHost相关的代码,提升应用质量。

    Android组件必学之TabHost使用方法详解

    一、TabHost用法 通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程。 TabHostActivity.java public class TabHostActivity extends TabActivity { private TabHost tabHost...

    android控件之tab,tabhost用法实例源码

    本文将详细介绍Tab和TabHost的使用方法,并通过一个实际的源码实例来加深理解。 首先,Tab是Android UI设计中的一种常见元素,通常用于展示多个可选的导航选项。每个Tab代表一个独立的页面或视图,用户可以通过点击...

    安卓 tabhost嵌套tabhost

    首先,我们来理解基本的TabHost用法。TabHost通常由两部分组成:TabWidget和FrameLayout。TabWidget是显示选项卡的部分,而FrameLayout则用来展示被选中选项卡的内容。通过TabSpec对象,我们可以设置每个选项卡的...

    TabHost用法实例

    TabHost+FrameLayout详细用法实例源代码

    android TabHost全用法

    本教程将深入讲解如何使用TabHost实现全面的功能,帮助开发者掌握这一核心组件。 首先,TabHost是一个容器,它允许你将多个TabWidget(选项卡)和一个FrameLayout(内容区域)组合在一起。TabWidget显示选项卡,而...

    TabHost的使用方法

    在Android开发中,TabHost是一个非常重要的组件,用于...以上就是关于TabHost的详细使用方法,希望对初学者在理解并实现选项卡界面时有所帮助。通过实践和学习,你可以掌握更多高级特性,提升Android应用的用户体验。

    Android控件之TabHost用法实例分析

    本文实例讲述了Android控件之TabHost用法。分享给大家供大家参考。具体如下: 以下通过TabHost实现android选项卡。 main.xml布局文件: &lt;?xml version=1.0 encoding=utf-8?&gt; android:layout_width=fill_...

    TabHost实例

    3. **添加选项卡**:使用`TabHost.addTab()`方法为`TabHost`添加新的选项卡。每个选项卡都需要一个标签(标签文本),一个意图(Intent)来启动关联的活动,以及可选的定制属性(如图标)。 4. **设置默认选中项**:...

    仿新浪微博tabhost实现

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建具有多个标签(Tab)的界面,每个标签...通过学习这个示例,开发者可以更好地掌握Android中的TabHost用法,从而创建出更加丰富和用户友好的应用界面。

    Android TabHost组件使用方法详解

    本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分包括TabWidget(标签栏)和FrameLayout(内容区域)。在布局文件`main.xml`中,可以看到TabHost的结构: ```xml &lt;TabHost ...

    android Tabhost使用Demo

    下面我们将深入探讨TabHost的使用方法以及涉及到的相关知识点。 1. **TabHost的基本概念** TabHost是一个容器,它可以在一个窗口内展示多个Tab标签,并且每个标签可以链接到不同的布局或Activity。TabHost通常与...

    TabHost使用以及源码分析

    **TabHost使用与源码分析** TabHost是Android系统中用于创建多标签界面的一个关键组件,它使得在同一个Activity中可以展示多个Fragment或者Activity。在Android应用开发中,TabHost通常用于实现类似iOS中的TabBar...

    TabHost的简单使用

    本篇文章将深入探讨如何在Android应用中实现TabHost的简单使用。 首先,我们需要在布局文件中设置TabHost。一个基本的TabHost布局可能如下所示: ```xml &lt;TabHost xmlns:android=...

Global site tag (gtag.js) - Google Analytics