使用TabHost 可以在一个屏幕间进行不同版面的切换,例如android自带的拨号应用。
完成一个TabHost的步骤:
一、设计布局文件,Tabhost布局文件一般使用FrameLayout,在FrameLayout中添加每个Tab页面的视图,但必须要有id,例如:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- 第一个Tab 对应的布局 -->
<!-- Tab内容必须用Layout布局将view包含,否则在程序中找不到View -->
<LinearLayout android:id="@+id/tab01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<ListView android:id="@+id/weather" android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>
</LinearLayout>
<!-- 第二个Tab 对应的布局 -->
<LinearLayout android:id="@+id/tab02"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/weath_detail"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:text="tab">
</TextView>
</LinearLayout>
<!-- 第三个Tab 对应的布局 -->
<LinearLayout android:id="@+id/tab03"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/city_detail" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="tab">
</TextView>
</LinearLayout>
</FrameLayout>
注意:每个Tab页面都要有自己的layout,负责在代码中通过Id无法找到相对应的视图
二、创建展示TabHost的Activity。
1、我们可以直接继承TabActivity,再通过getTabHost()方法得到TabHost对象。例如:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
myTabHost = this.getTabHost();
//绑定布局文件
LayoutInflater.from(this).inflate(R.layout.tab_host,
myTabHost.getTabContentView(),
true);
initTabHost();
setTitle(weather.getCityName());
//设定显示内容
setContentView(myTabHost);
}
2,为TabHost添加要显示的tab,一个tab就是相应的一个选项卡。例如:
//添加tab
myTabHost.addTab(myTabHost.newTabSpec(TAB_1) //tab的Tag
.setIndicator("城市天气") //tab的标题
.setContent(R.id.tab01)); //tab的显示内容
myTabHost.addTab(myTabHost.newTabSpec(TAB_2)
.setIndicator("天气详情")
.setContent(R.id.tab02));
myTabHost.addTab(myTabHost.newTabSpec(TAB_3)
.setIndicator("城市介绍")
.setContent(R.id.tab03));
3,为Tabhost添加选项卡改变监听,在选项卡改变时做相应处理。例如:
//添加OnTabChangedListener监听,此监听为选项卡改变监听
myTabHost.setOnTabChangedListener(this);
监听处理方法
public void onTabChanged(String tabId)
{
if (tabId.equals(TAB_1))
{
//初始化标签1
initTab1();
}
else if (tabId.equals(TAB_2))
{
//初始化标签2
initTab2();
}
else if (tabId.equals(TAB_3))
{
//初始化标签3
initTab3();
}
}
4,修改Tab显示内容
private void initTab2()
{
//得到tab内容的视图
TextView weathDetailText = (TextView)findViewById(R.id.weath_detail);
weathDetailText.setText(weather.getLiveWeather());
}
分享到:
相关推荐
本资源深入探讨了如何使用TabHost,并提供了三种主要的实现方式:通过ID、Intent以及Java代码。下面将详细阐述这些知识点。 1. **通过ID使用TabHost** - TabHost的`setup()`方法是初始化TabHost的关键,它需要一个...
在Android开发中,TabHost...总结,TabHost是构建多标签界面的关键组件,掌握其使用方法对于开发高效、用户友好的Android应用至关重要。结合源码理解和工具辅助,能更好地优化和调试TabHost相关的代码,提升应用质量。
总结来说,TabHost是Android中构建多选项卡界面的一种方式,虽然现在有更现代的解决方案,但在理解Android历史和一些老项目中,掌握TabHost的使用仍然是必要的。通过TabHost和相关组件,开发者可以轻松地为用户提供...
根据给定的内容,我们可以总结出使用 TabHost 的几个关键步骤: 1. **新建类并继承 TabActivity** ```java public class MainActivity extends TabActivity { ``` - **说明**:为了让应用支持 TabHost,我们...
7. 小结: TabHost是Android早期版本中实现标签页切换的主要方式。随着Android SDK的更新,现在更多地使用ViewPager配合FragmentTabHost或BottomNavigationView来构建多页应用。尽管如此,理解TabHost的工作原理对于...
总结来说,Android的TabHost组件提供了一种方便的方式来组织应用的多个功能模块,用户可以通过标签页轻松切换。在实际开发中,我们可以根据需求自定义标签页的样式、内容和交互,为用户提供更友好的界面体验。需要...
总结,TabHost在Android开发中用于构建多标签界面,通过添加Tab并设置Intent,可以实现在不同Activity间的跳转。随着Android设计风格的发展,虽然TabHost的使用逐渐减少,但它依然是理解Android界面构建机制的重要一...
本文将深入探讨`TabHost`的学习总结,并结合标签“源码”和“工具”,介绍如何利用`TabHost`实现多标签功能以及查看相关源码进行深入理解。 `TabHost`是Android提供的一个容器,它允许我们在应用中创建一个标签栏,...
总结来说,Android的嵌套TabHost是一种增强用户界面的方法,它允许开发者创建更复杂的导航结构,提供类似网页的多级菜单体验。通过理解和实践这个示例,开发者可以更好地掌握Android TabHost的使用,以及如何在实际...
总结起来,Android的TabHost是一个强大的工具,用于构建带有多个Tab的用户界面。通过设置TabWidget和FrameLayout,以及使用TabSpec来管理每个Tab的内容,我们可以轻松地创建出功能丰富的多视图应用。尽管现代Android...
下面我们将详细介绍如何使用 `TabHost`,包括布局的设置和代码的实现步骤。 一、定义 `TabHost` 在Android中,`TabHost` 不再需要直接继承 `TabActivity`,而是可以作为任何活动的一部分。首先,我们需要在布局文件...
总结,TabHost是Android开发中实现多Tab界面的经典组件,虽然在新版本的Android中,更多地推荐使用ViewPager和TabLayout的组合,但对于理解Android的历史和各种实现方式,TabHost仍然是不可或缺的一部分。...
总结来说,结合TabHost和ViewPager可以构建出一种经典的Android界面布局,允许用户通过点击标签或者滑动屏幕来切换不同的内容区域。这种设计模式在很多应用中都得到了广泛的应用,既保留了传统TabHost的直观性,又...
总结:TabHost在Android应用中提供了灵活的多标签页展示方式,可以通过XML布局或者编程方式实现。XML布局方式简洁直观,适合静态内容;而编程方式更适用于动态生成或复杂交互的场景。理解这两种方法对于创建具有多...
总结来说,解决TabHost下面白线的问题通常涉及到调整主题、自定义TabWidget样式、修改布局文件或创建自定义View。理解TabHost的工作机制并熟练掌握相关属性和方法是解决问题的关键。通过以上方法,你应该能够成功地...
总结,TabHost在Android应用中提供了方便的多标签导航功能。通过设置TabSpec、初始化TabHost、添加Tab以及自定义样式,开发者可以轻松地构建出功能丰富的界面。理解TabHost的源码也有助于深入掌握其工作机制,从而更...
#### 五、小结 通过继承 `TabActivity` 并结合 XML 和 Java 代码的方式,我们可以灵活地创建功能强大的标签式导航界面。这种方法不仅简化了 XML 文件,还提高了代码的可读性和维护性。希望本文能帮助你在Android...
- 要使用`TabHost`,首先需要继承`TabActivity`,然后通过`getTabHost()`获取`TabHost`实例。 - 使用`TabHost.newTabSpec()`创建`TabSpec`,并设置其标识、标题和内容。标题可以通过`setIndicator()`设置,内容...
这篇博客文章“android总结之TabHost”深入探讨了如何在Android应用中使用TabHost进行界面设计。TabHost提供了在同一个屏幕上展示多个功能区域的能力,使得用户可以方便地切换不同内容。 首先,我们需要理解TabHost...
总结来说,Android的TabHost组件是构建多选项卡界面的重要工具。通过熟练掌握它的用法,开发者可以轻松地组织和展示应用程序的多个功能区域,提升用户体验。在实际项目中,可以根据需求调整TabHost的外观和行为,以...