学习Android一周, 这两天用TabHost的时候, 遇到2个问题:
问题1. 运行Activity的时候出现Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
添加Layout的时候,xml跟元素选择TabHost, 但是ADT没有添加id属性, 运行的时候,会提示Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'错误, 需要添加android:id="@android:id/tabhost", 这样就可以了。
问题2. 运行Activity的时候出现Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabcontent'
解决方法: 修改FrameLayout添加id属性, ADT自动生成的xml文件中Id是android:id="@+id/FrameLayout01
", 需要修改成下面的格式android:id="@android:id/tabcontent
",这个估计会困扰一大批初学者,谁会想到会修改这个地方,看到错误很容易修改成tabcontent,但是前缀不容易想到。 而且在ADT可视化编辑这个文件的时候, 界面上显示NullPointerException,这个是ADT的一个BUG。
修改后的xml如下:
<?xml version="1.0" encoding="utf-8"?>
<TabHost
android:id="@android:id/tabhost"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/LinearLayout01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical">
<TabWidget android:id="@android:id/tabs"
android:layout_height="wrap_content" android:layout_width="fill_parent">
</TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent">
</FrameLayout>
</LinearLayout>
</TabHost>
注意: 如果用TabHost的话, 上面标红的三处必须是一样, 这个是Google的约定。 而且一个工程中只能有一个TabHost。
分享到:
相关推荐
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...
### Android TabHost 动态增加与删除详解 #### 一、TabHost简介 TabHost是Android框架中的一个重要组件,用于创建具有多个标签页的应用界面。TabHost由三部分组成: 1. **`TabWidget`**:显示各个标签的组件。 2....
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与TabWidget和FrameLayout一起工作,为每个标签提供一个视图容器。本教程将深入...
对于博客中提到的"源码"标签,理解TabHost的源码可以帮助开发者更深入地了解其工作原理,从而优化性能或解决特定问题。TabHost类主要在`android.widget.TabHost`包下,可以查看其对TabWidget和FrameLayout的管理逻辑...
在Android开发中,TabHost是实现标签栏切换界面的一个关键组件。TabHost允许开发者创建一个具有多个Tab的界面,每个Tab都可以关联到不同的布局或活动(Activity),为用户提供直观的多视图导航体验。本文将深入讲解...
在Android开发中,TabHost是一个非常重要的组件,用于实现多标签页的应用界面。TabHost结合TabWidget和FrameLayout,能够方便地创建具有多个选项卡的布局。本篇将深入讲解如何利用TabHost来构建一个简单的Android...
8. **兼容性问题**:由于TabHost是早期Android API的一部分,所以在较低版本的Android系统上运行时,可能需要使用Support Library中的Fragment和TabHost的兼容版本。 9. **现代替代方案**:尽管TabHost仍然是可行的...
Android编程之Intent_TabHost源码演示,自定义的Tabhost(内含源码),学习制作Android软件的TAB标签界面,在电脑上已经很流行的功能,Android手机上当然不能少,这个TabHost源码相对简单些,是JAVA转学Android比较...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签可以展示不同的内容或活动(Activity)。本资源“tabhost--UI源码.zip”显然是一个包含有关如何使用TabHost实现用户界面的...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签可以展示不同的内容或活动(Activity)。本教程将详细介绍如何使用TabHost,特别适合初学者和教学场景,例如构建一个模拟...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。本文将详细讲解如何在Android Studio中使用TabHost进行布局设计,以及如何自定义TabHost的...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,使得用户可以在不同的视图间切换。"android 滑动的tabhost"是指将传统的TabHost与手势滑动结合,实现更流畅、更具互动性的用户体验。在...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个可切换标签的用户界面,类似于许多移动应用顶部常见的选项卡。本篇文章将深入探讨如何在Android中自定义TabHost,以实现美观且功能丰富的界面。 ...
开发过程中,可以借助Android Studio的布局预览功能查看TabHost的效果,同时利用调试工具检查运行时的TabHost状态,以便找出潜在问题。 总结,TabHost是构建多标签界面的关键组件,掌握其使用方法对于开发高效、...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的界面,每个选项卡可以展示不同的内容。在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者...
在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以承载不同的Activity或View。在这个例子中,我们将会深入理解如何使用TabHost、ActivityGroup以及源码分析,来...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...
在Android应用开发中,TabHost是一个非常重要的组件,它允许我们创建带有多个选项卡的应用界面。这个组件在早期的Android版本中广泛使用,为用户提供了一种便捷的方式来组织和切换不同的视图或活动。本文将深入探讨...
1. **TabHost**: TabHost是Android中用于创建带有标签栏的布局的组件。它允许你在不同标签之间切换内容。然而,由于API 13后被弃用,我们不再直接使用它,而是通过其他方式模拟其功能。 2. **Fragment**: Fragment...