我正在尝试设计一款应用,但当我在整个身体中放置一个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>
答案 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外部。