<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TabHost android:id="@+id/view_tab_host" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center"
android:orientation="vertical">
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_gravity="center_vertical" android:layout_weight="1"
android:gravity="center_vertical">
</FrameLayout>
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="52dip"
android:layout_weight="0">
</TabWidget>
</LinearLayout>
</TabHost>
</LinearLayout>
package cn.fn;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.TabHost.TabSpec;
public class TabHostActivity extends ActivityGroup {
private TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 加载TabSpec
tabHost = (TabHost) findViewById(R.id.view_tab_host);
tabHost.setup(getLocalActivityManager());
TabWidget tabWidget = tabHost.getTabWidget();
tabHost.addTab(tabHost.newTabSpec("text1").setIndicator("选项卡1")
.setContent(
new Intent(TabHostActivity.this, Text1Activity.class)));
tabHost.addTab(tabHost.newTabSpec("text2").setIndicator("选项卡2")
.setContent(
new Intent(TabHostActivity.this, Text1Activity.class)));
// 设置标签栏背景图片
tabHost.setCurrentTab(1);
tabWidget.setBackgroundResource(R.drawable.bg);
}
}
分享到:
相关推荐
1. 创建XML布局文件,定义TabHost、TabWidget和FrameLayout。TabWidget通常包含TabSpecs,每个TabSpec代表一个标签和其关联的Intent,Intent指向要显示的活动或视图。 2. 在活动中初始化TabHost,使用`...
- 创建TabHost实例:通常我们会在布局XML文件中定义一个TabHost,并在Java代码中通过`findViewById()`获取它。 - 添加Tab:使用`TabHost.addTab()`方法来添加新的Tab。这个方法需要传递四个参数:TabSpec(Tab的...
首先,你需要在布局XML文件中设置`TabHost`,并为`TabWidget`和`FrameLayout`定义ID。例如: ```xml <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" ...
你可以通过修改颜色、字体、尺寸等属性来自定义TabHost和ViewPager的外观,使其符合应用的整体设计风格。 6. **兼容性**:由于项目基于Android 2.2开发,这意味着它考虑到了向后兼容,可以运行在较旧版本的Android...
3. **添加Tab**:接下来,为每个要显示的页面创建一个`TabSpec`,这定义了标签的文本、图标以及与之关联的内容。你可以使用`TabHost.newTabSpec()`方法创建`TabSpec`,并调用`setIndicator()`设置标签的显示内容,`...
首先,我们需要定义一个名为`TabHostSingleton`的类,该类将持有TabHost的实例。在这个类中,我们将实现单例模式的双重检查锁定(Double-Checked Locking)机制,以确保线程安全并避免不必要的同步开销。 ```java ...
例如,可以创建一个XML布局文件来定义Tab的样式,然后使用`setIndicator()`方法加载这个布局。 六、源码分析 通过查看TabHost的源码,我们可以了解到其内部的工作流程。TabHost主要负责管理TabWidget和FrameLayout...
在res/layout目录下创建一个名为activity_main.xml的布局文件,定义TabHost、TabWidget和FrameLayout。示例如下: ```xml <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@...
3. **关联ViewPager和TabHost**:使用 `TabHost.TabSpec` 来定义每个标签,设置其标签文字和对应的 `ViewPager` 页面。`TabSpec` 的 `setContent()` 方法接受一个 `Intent`,但我们在这里需要将其设置为 `ViewPager`...
2. **布局文件**:通常会有XML布局文件来定义TabHost的结构,包括TabWidget和FrameLayout,以及可能的自定义样式。 3. **选项卡的添加**:在Java代码中,开发者会通过TabSpec创建并添加选项卡,每个TabSpec包含了...
2. 自定义`ListView`的布局文件:在`res/layout`目录下创建XML布局文件,定义每个列表项的视图结构。这个布局文件会被`Adapter`的`getView()`方法加载并填充数据。 为了将自定义`ListView`添加到`TabHost`的一个`...
添加选项卡通常通过`TabSpec`对象完成,它定义了选项卡的标签、内容和对应的Intent。`TabSpec`可以通过`TabHost.newTabSpec()`创建,然后使用`setIndicator()`设置标签文本,`setContent()`设置内容。 ```java ...
这里的`R.id.tab_host`是你在XML中为TabHost定义的ID。 3. 添加标签: 接下来,你可以使用`TabHost.addTab()`方法为TabHost添加标签。每个标签需要指定一个TabSpec对象,它包含了标签的显示文本、对应的Activity或...
5. **布局设计**:在XML布局文件中,需要正确放置TabHost,通常使用`<TabHost>`标签作为根元素,并在其内部定义`<TabWidget>`和`<FrameLayout>`,分别用于展示Tab和内容区域。 ### 示例代码 以下是一个简单的嵌套...
1. 创建TabHost实例:通常在布局XML文件中定义一个TabHost,并在代码中通过findViewById()获取其引用。 2. 设置TabHost的宿主:调用TabHost的setup()方法,传入一个FrameLayout的ID作为参数。 3. 添加Tab:使用...
TabHost的布局通常会包含一个`<TabHost>`标签,并在其中定义`<TabWidget>`和`<FrameLayout>`,通过`android:id="@android:id/tabhost"`来标识它们。 TabHost的使用步骤大致如下: 1. 初始化TabHost:`TabHost ...
在布局文件中定义TabHost,然后在代码中设置其布局。 - **添加Tab**:使用TabHost的`setup()`方法初始化,然后调用`tabHost.addTab()`方法添加新的Tab,指定标签文本、图标以及与之关联的布局。 - **切换内容**:...
通过`TabSpec`对象,你可以定义每个标签的内容和标签文字。以下是如何使用`TabHost`的基本步骤: 1. 初始化`TabHost`:通过`TabHost tabHost = TabHost(this);`并设置布局。 2. 设置`TabHost`为宿主:`tabHost....
`TabHost`通过`setup()`方法初始化,并且必须有一个`TabSpec`来定义每个标签。 `TabWidget`是`TabHost`的一部分,显示一系列的标签,每个标签代表一个可切换的视图。当用户点击一个标签时,`TabHost`会更新其内容...
首先,我们需要在布局XML文件中定义TabHost。TabHost通常包含两个主要部分:一个TabWidget和一个FrameLayout。例如: ```xml <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" ...