渲染期间引发异常:TabHost需要FrameLayout,其ID为#34; android:id / tabs"

时间:2014-07-25 10:33:32

标签: android

我在我的应用中遇到了一个可怕的问题。基本上,我正在重命名所有我想要的内容。但是没有任何改变,而且它仍然存在渲染问题。

图片供参考:

enter image description here

这是整个顶级代码段

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".FindMyCar"
    android:id="@+id/idhere">

    <TabHost
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tabHost"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp">

    <TabWidget
        android:id="@id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />



    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_alignParentTop="true">

        <FrameLayout
            android:id="@id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
    </TabHost>
            <LinearLayout
                android:id="@+id/find"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"></LinearLayout>

5 个答案:

答案 0 :(得分:2)

TabWidget ID更改为

 android:id="@android:id/tabs"

以及TabHost id to

android:id="@android:id/tabhost"

答案 1 :(得分:2)

更改TabWidget的ID

android:id="@id/tabs"

通过

android:id="@android:id/tabs"

TabHost id

android:id="@android:id/tabhost"

FrameLayout id by

@android:id/tabcontent"

这是完整的xml文件

 <TabHost 
    android:id="@android:id/tabhost" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <View android:layout_width="fill_parent" android:layout_height="0.5dip"
            android:background="#000" />
        <TabWidget android:id="@android:id/tabs"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_marginLeft="0dip" android:layout_marginRight="0dip" />
        <View android:layout_width="fill_parent" android:layout_height="2dip"
            android:background="#696969" />
        <View android:layout_width="fill_parent" android:layout_height="2dip"
            android:background="#000" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent" />
    </LinearLayout>
</TabHost>

答案 2 :(得分:1)

在IDE的屏幕截图中,您错过了android前面的@:id / tabs和android:id / tabcontent

答案 3 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".FindMyCar"
    android:id="@+id/idhere">

    <TabHost
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tabHost"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />



        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"/>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
    </TabHost>
    <LinearLayout
        android:id="@+id/find"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

    </LinearLayout>

</RelativeLayout>

答案 4 :(得分:0)

Android要求您在TabWidget内为FrameLayoutTabHost使用自己定义的ID。 因此,将TabWidget的ID更改为android:id="@android:id/tabs"FrameLayoutandroid:id="@android:id/tabcontent"的身份 它应该工作。