错误:渲染期间引发异常:ScrollView只能托管一个直接子项

时间:2015-05-29 00:33:04

标签: android xml

我正在尝试设计一款应用,但当我在整个身体中放置一个ScrollView时说

  

引发异常在渲染期间:ScrollView只能托管一个直接子项

我做错了什么?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/root">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">


    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/toolbar"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@+id/title"
        android:layout_alignStart="@+id/title" />


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:background="#303F9F"
        android:id="@+id/layout">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/title"
            android:gravity="center"
            android:hint="Title"
            android:textSize="23dp"
            android:text="@string/contenido"
            android:textColor="#fff"
            android:layout_gravity="center"
            android:layout_marginLeft="35dp"
            android:layout_marginRight="35dp"
            android:layout_marginTop="140dp"/>

        <include
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            layout="@layout/view_include_footer"
            android:layout_alignParentBottom="true"
            />


    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/comment_rv"
            android:layout_below="@+id/setting_toolbar"
            android:scrollbars="vertical"
            android:background="#ccffffff"
            />
    </RelativeLayout>
    </ScrollView>

</LinearLayout>

2 个答案:

答案 0 :(得分:3)

ScrollView只能托管一个直接子项,这意味着您可以直接在其中使用一个元素。创建一个RelativeLayout或最适合您的,并将您的include和RelativeLayouts都放在其中,并将此布局放在ScrollView中。你只有这样一个直接的孩子。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/root">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<include
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    layout="@layout/toolbar"
    android:layout_alignParentTop="true"
    android:layout_alignLeft="@+id/title"
    android:layout_alignStart="@+id/title" />


<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:background="#303F9F"
    android:id="@+id/layout">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/title"
        android:gravity="center"
        android:hint="Title"
        android:textSize="23dp"
        android:text="@string/contenido"
        android:textColor="#fff"
        android:layout_gravity="center"
        android:layout_marginLeft="35dp"
        android:layout_marginRight="35dp"
        android:layout_marginTop="140dp"/>

    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/view_include_footer"
        android:layout_alignParentBottom="true"
        />


</RelativeLayout>
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/comment_rv"
        android:layout_below="@+id/setting_toolbar"
        android:scrollbars="vertical"
        android:background="#ccffffff"
        />
</RelativeLayout>
</RelativeLayout>
</ScrollView>

答案 1 :(得分:0)

我在较早的时候遇到过这个问题,显然ScrollView只能托管一个直接孩子。这意味着你不应该使用两个!子视图&lt; include /&gt;和&lt; RelativeLayout /&gt;在ScrollView中,只围绕两个子视图的RelativeLayout外部。