`
whao189
  • 浏览: 124216 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

tabhost must have TabWidget and FrameLayout

 
阅读更多
这两天看 一博友做的微博客户端,呵呵。。自己做android 这么久以来没有想过说自己做东西,其实主要是我界面上的东西不熟悉。。。再说了审美观不怎么样,不过不管怎么说,再怎么找理由UI 这东西 我们还是很需要学习的。

跟着那哥们的微博 走,想学习一些UI方面的东西结果用到了tabhost,我就很纳闷了。在定义tabhost.xml之后 加载到 activity中之后 logcat 提示我 tabhost must have TabWidget'id  and FrameLayout'id 。。。。。。。匪夷所思(别喷我,因为以前很少接触这个东西)是在找不到原因,我就关联了源码看了一下 结果发现在 向 tabSPec总add的时候 源码哪里做了判断。。


如下
if (tabSpec.mIndicatorStrategy == null) {
            throw new IllegalArgumentException("you must specify a way to create the tab indicator.");
        }

        if (tabSpec.mContentStrategy == null) {
            throw new IllegalArgumentException("you must specify a way to create the tab content");
        }


我怀疑就是这个地方出的问题。。。而且要注意的是 你在tabhost.xml中定义的 TabWidget 和 FrameLayout 的Id 必须是 @android:id/tabs  和 @android:id/tabcontent 否则 编译器还会提示 说given name is invalid!!!! 我尝试过写成  @+id/tabs 和 @+id/tabcontent 结果 都运行失败。。。搞不懂!
但是我没有更 实际的依据来证明我的推测,只能先用blog 记一下 以待解决!
分享到:
评论
1 楼 腹黑君 2013-03-15  
<TabWidger> 和<FrameLayout>的Id 必须使用系统id,分别为android:id/tabs 和 android:id/tabcontent 。因为系统会使用者两个id来初始化TabHost的两个实例变量(mTabWidget 和 mTabContent)。

相关推荐

    TabHost+TabWidget+FrameLayout实现底部菜单

    `TabHost`、`TabWidget`和`FrameLayout`是Android SDK提供的一种原生方式,用于构建这种多标签页的应用界面。下面我们将详细探讨如何利用这些组件来实现底部菜单功能。 `TabHost`是Android中的一个容器类,它负责...

    Android_TabHost_TabWidget选项卡总结

    `TabHost`作为容器,管理着`TabWidget`和一个`FrameLayout`,而`TabWidget`则是展示选项卡的控件。 1. **TabHost的使用** - `TabHost`是`FrameLayout`的特殊形式,它包含两个子元素:`TabWidget`和`FrameLayout`。...

    TabHost自定义样式 自定义TabWidget

    TabHost通常由两部分组成:TabWidget和FrameLayout。TabWidget是显示选项卡的视图,而FrameLayout则用于展示被选中选项卡对应的内容。默认情况下,TabHost的样式可能无法满足所有设计需求,因此我们需要进行自定义。...

    Android TabHost TabWidget 切换卡

    `TabHost`是Android提供的一个容器,它能够容纳多个`TabWidget`和一个`FrameLayout`,用于展示当前被选中的标签内容。`TabHost`通过`setup()`方法初始化,并且必须有一个`TabSpec`来定义每个标签。 `TabWidget`是`...

    Android入门第十一篇之TabHost,TabWidget.docx

    首先,TabHost是一个容器控件,它用于管理和展示多个TabWidget和对应的FrameLayout内容。TabHost的职责是协调TabWidget中的各个Tab和与之相关联的活动或视图。在XML布局文件中,TabHost通常作为根元素,通过`...

    tabhaost框架

    在Android SDK中,TabHost通常与TabWidget和FrameLayout一起使用。TabWidget负责显示各个Tab,而FrameLayout则用于承载每个Tab下的具体内容。通过TabHost的setup()方法,我们可以关联TabWidget和FrameLayout,然后...

    Android可以点击切换和滑动切换的tabhost

    TabHost通常与TabWidget和FrameLayout一起使用,为用户提供了一个可以在多个标签之间切换的界面,既可以通过点击标签进行切换,也可以通过滑动实现平滑过渡。下面将详细解释如何在Android应用中实现点击和滑动切换的...

    Android TabHost嵌套示例.rar

     TabHost、TabWidget 、FrameLayout  如果继承TabActivity,并且通过getTabHost()方法来获取TabHost,那么三者的ID必须是android.R.id.tabhost、android.R.id.tabs、android.R.id.tabcontent,如果继承Activity,...

    android tabhost --android UI 学习

    在Android开发中,TabHost通常结合TabWidget和FrameLayout一起使用,前者负责显示和管理标签,后者则承载被选中的Activity。 TabHost的工作原理是,它包含一个TabWidget,这个组件会显示一系列的标签,而...

    仿新浪微博TabHost菜单

    2. 初始化TabWidget和FrameLayout:在TabHost中添加TabWidget和FrameLayout,这两个组件是TabHost的基础。 ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); TabWidget ...

    android TabHost 底部显示

    TabHost通常结合TabWidget和FrameLayout一起使用,TabWidget用于显示和管理各个Tab,而FrameLayout则用来承载每个Tab对应的内容。 二、实现步骤 1. 创建布局资源 首先,我们需要创建一个XML布局文件,包含TabHost...

    Android TabHost 实例源码

    TabHost结合TabWidget和FrameLayout一起工作,提供了在单个屏幕上组织多个活动(Activities)或视图(Views)的能力。本文将深入探讨TabHost的使用方法,包括基本概念、配置步骤、源码解析以及实战示例。 一、...

    android--自定义TabHost

    - 在布局文件(如`activity_main.xml`)中,你会看到TabHost、TabWidget和FrameLayout的定义,以及可能存在的自定义TabIndicator布局。 - `onCreate()`方法中,实例化并初始化自定义的TabHost,添加自定义的标签和...

    Android编程之TabWidget选项卡用法实例分析

    tab组件一般包括TabHost和TabWidget、FrameLayout,且TabWidget、FrameLayout属于TabHost。 是否继承TabActivity的问题 实现步骤。两种实现方式,一种是将每个Tab的布局嵌在TabHost中的FrameLayout中,每个Tab的内容...

    Android - TabHost选项卡示例源码

    在Android SDK中,TabHost通常与TabWidget和FrameLayout一起使用。TabWidget用于显示选项卡,而FrameLayout则用来承载每个选项卡下的内容。 创建TabHost的基本步骤如下: 1. **初始化TabHost**:首先,你需要通过`...

    Android TabHost控件讲解

    TabHost通常与TabWidget和FrameLayout一起使用,创建一个带有可点击标签的界面,每个标签对应一个活动(Activity)或者布局。下面将详细讲解TabHost的使用方法及其相关知识点。 首先,了解TabHost的基本结构。...

    android UI源码.zip

    实现TabHost有三种方式:继承自TabActivity,ActivityGroup和自定义的Activity 实现 备注:我在继承TabActivity的时候,将TabWidget的android:layout_height设置为"fill_parent"时,tab中不显示任何东西。如图: ...

    Android程序开发之自定义设置TabHost,TabWidget样式

    TabHost是一个容器,它包含了TabWidget和一个内容区域(通常是一个FrameLayout)。TabWidget则负责显示各个标签,而内容区域则会根据用户选择的标签来显示相应的视图。在XML布局文件中,TabHost通常作为根元素,然后...

    Android入门之TabHost与TabWidget实例解析

    在XML布局文件中,TabHost应该作为顶级视图,并且至少包含一个TabWidget和一个FrameLayout。 TabWidget是TabHost中的子组件,负责显示各个标签。每个标签都代表一个不同的页面或活动。在XML布局中,TabWidget的ID...

    tabhost布局

    TabHost结合了TabWidget(用于显示选项卡)和FrameLayout(用于显示内容),使得开发者可以轻松地构建多页面应用。在本资源中,我们看到的是一个底部两栏格式的TabHost布局设计,点击不同选项卡时会弹出相应的界面,...

Global site tag (gtag.js) - Google Analytics