So over the past few weeks I’ve jumped into Google’s Android platform. It’s a blast and very well designed, but there are still some rough edges. One of those rough spots is getting a tab or paging control to work. The API documentation talks about a TabHost widget, but it has been marked as deprecated. (Already!? The API was just formed a few months ago, lol.) It speaks of a phantom “views/Tabs2.java” example which never shipped. There is also talk about a PageTurner widget, but no examples exist for that either.
Because I needed a tab-like control badly, I brute forced my way through getting a TabHost working. Hopefully this will save other developers some time. Remember that the TabHost widget is marked as deprecated in this version of the API. However, someone mentioned that TabHost might be making a comeback. In either case, here is a quick example of TabHost in action:
First let’s create an XML layout for our example, just a simple LinearLayout with a TabHost widget inside. It’s important to notice that the TabHost must contain both a TabWidget and a FrameLayout with specific id’s in order to work.
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
<TabHost
id=”@+id/tabs”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
<TabWidget
id=”@android:id/tabs”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
/>
<FrameLayout
id=”@android:id/tabcontent”
android:layout_width=”fill_parent”
android:layout_height=”200px”
android:paddingTop=”30px”
>
<LinearLayout
id=”@+id/content1″
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#ff99ccff”
>
<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tab item uno :)”
/>
</LinearLayout>
<LinearLayout
id=”@+id/content2″
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#ffffcc99″
>
<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tab item dos :/”
/>
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tabhost needs”
/>
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”to be upgraded ;)”
/>
</LinearLayout>
</FrameLayout>
</TabHost>
</LinearLayout>
Inside the FrameLayout we can put our tab contents, which in this case are two LinearLayouts with different contents. These, of course, could be pulled by id and filled with dynamic content as needed. If I remember correctly, I think it was important that some sort of tab-content container needed to actually exist as a sub-widget under the FrameLayout in order for the tabs to work.
Next, let’s jump over to the Java code and build up the tab example.
setContentView(R.layout.tabs);
TabHost tabs = (TabHost)this.findViewById(R.id.tabs);
tabs.setup();
tabs.addTab(”one”, R.id.content1, “labelone”);
tabs.addTab(”two”, R.id.content2, “labeltwo”);
Nothing too fancy, just pull the TabHost, initialize it, and let it know about the tabs we have. Now let’s give the example a spin on the emulator:
This is the first real look we’ve had at the TabHost widget, and it looks okay. Mouse clicking doesn’t switch tabs, so you need to use the keypad’s left/right arrow keys to navigate. The up/down keys work as expected on a tab with buttons, so not much to complain about.
分享到:
相关推荐
综上所述,`android Tabhost使用Demo`是一个帮助开发者学习和理解如何在Android应用中实现多Tab界面的实例。通过这个Demo,你可以了解到TabHost的基本用法,包括设置Tab、关联Activity、自定义Tab样式以及处理Tab...
**TabHost使用与源码分析** TabHost是Android系统中用于创建多标签界面的一个关键组件,它使得在同一个Activity中可以展示多个Fragment或者Activity。在Android应用开发中,TabHost通常用于实现类似iOS中的TabBar...
### TabHost 使用方法详解 #### 一、TabHost 概述 TabHost 是 Android 提供的一个用于实现标签式导航的控件,它可以帮助开发者轻松地创建具有多个标签页的应用程序界面。通过 TabHost,用户可以在不同的标签页之间...
### Android Tabhost 使用详解 #### 一、Tabhost 概述 在Android开发过程中,`Tabhost` 是一个非常实用的组件,它可以帮助开发者轻松地为应用创建标签式导航界面。这种方式不仅美观而且能有效提高用户体验。本文将...
本文将深入讲解如何在Android应用程序中有效地使用TabHost。 一、TabHost概述 TabHost是Android SDK中的一个容器类,用于管理一组TabWidget(标签)和一个FrameLayout(帧布局),在这个帧布局中,我们可以切换显示...
极光推送+admob插屏+tabhost使用+webview+友盟统计 极光推送+admob插屏+tabhost使用+webview+友盟统计 极光推送+admob插屏+tabhost使用+webview+友盟统计
本教程将详细介绍如何使用 `TabHost` 创建自定义按钮菜单,以提供丰富的交互体验。 首先,理解 `TabHost` 的基本结构至关重要。`TabHost` 是一个容器,它可以包含一个 `TabWidget`(标签控件)和一个 `FrameLayout`...
本文将详细介绍如何使用`FragmentTabHost`来实现一个仿微信首页的界面。`FragmentTabHost`是Android SDK提供的一种用于在Tab布局中管理Fragment的组件,它使得在不同Tab之间切换时能够保持状态并展示不同的内容区域...
本篇文章将详细讲解如何在Android中使用TabHost,包括其基本概念、设置过程以及实现Activity之间的切换跳转。 **TabHost的基本概念** TabHost是Android SDK中的一个视图容器,它允许开发者在一个界面上展示多个Tab...
下面我们将详细介绍如何使用 `TabHost`,包括布局的设置和代码的实现步骤。 一、定义 `TabHost` 在Android中,`TabHost` 不再需要直接继承 `TabActivity`,而是可以作为任何活动的一部分。首先,我们需要在布局文件...
本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,我们需要理解TabHost的基本结构。TabHost是一个容器,它包含两个主要组件:TabWidget和FrameLayout。TabWidget用于显示和管理各个...
androidTabhost的使用实例代码,仅供参考
下面将详细介绍TabHost的使用方法,以及如何通过它来构建用户友好的多页面应用。 1. TabHost的基本结构: TabHost主要由两个组件组成:TabWidget和FrameLayout。TabWidget显示各个标签,而FrameLayout用于展示被...
以下是一个简单的TabHost使用步骤: 1. 创建TabHost实例:在Activity中通过`TabHost tabHost = (TabHost) findViewById(R.id.tabhost);`获取TabHost对象。 2. 初始化TabHost:调用`tabHost.setup();`初始化TabHost...
在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者经常需要自定义TabHost的外观,例如更改背景颜色。本篇将详细讲解如何在Android中自定义TabHost,实现更换背景颜色。...
在“自定义tabhost使用了不同默认的上标签切换页面”这一描述中,我们可以理解为每个Tab可能展示不同的内容,而这些内容可能是通过不同的Activity或Fragment来实现的。当用户点击不同的Tab时,TabHost会根据预设的...
以下是一个简单的TabHost使用示例: ```xml <!-- layout.xml --> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabhost" android:layout_width="match_parent" ...
本篇文章将深入探讨如何在Android应用中实现TabHost的简单使用。 首先,我们需要在布局文件中设置TabHost。一个基本的TabHost布局可能如下所示: ```xml <TabHost xmlns:android=...
本资源深入探讨了如何使用TabHost,并提供了三种主要的实现方式:通过ID、Intent以及Java代码。下面将详细阐述这些知识点。 1. **通过ID使用TabHost** - TabHost的`setup()`方法是初始化TabHost的关键,它需要一个...
本教程将详细介绍如何使用TabHost,特别适合初学者和教学场景,例如构建一个模拟显示未接来电、已接来电和拨出电话的选项卡应用。 首先,我们需要了解TabHost的基本结构。TabHost包含两个主要部分:TabWidget和...