ScrollView 只能承载一个具有 relativelayout 的直接子级
ScrollView can host only one direct child with relativelayout
我的布局在使用 RelativeLayout 时导致错误 "ScrollView can host only one direct child"。
我想在工具栏后面添加一个滚动视图。 ScrollView 中的所有内容都应该可以垂直滚动,但是当我尝试这段代码时,它会导致上述错误 "ScrollView can host only one direct child with relativelayout".
Layout.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//Scroll view starts here
<include
android:id="@+id/toolbar"
layout="@layout/view_toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Most Download"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_video_terbaru"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Funny Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherVideoFunny"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_funny_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Religy Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherReligyVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_religi_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Others Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherMoreVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_others_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</ScrollView>
</LinearLayout>
采用相对布局或线性布局,然后将所有视图放入其中,然后用滚动视图包裹这个相对布局
您的问题将得到解决。
Md.ibrahim khalil 给出的答案完全正确,
试试用这个替换你的布局,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//Scroll view starts here
<include
android:id="@+id/toolbar"
layout="@layout/view_toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Most Download"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_video_terbaru"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Funny Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherVideoFunny"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_funny_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Religy Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherReligyVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_religi_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Others Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherMoreVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_others_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</LinearLayout>
我的布局在使用 RelativeLayout 时导致错误 "ScrollView can host only one direct child"。
我想在工具栏后面添加一个滚动视图。 ScrollView 中的所有内容都应该可以垂直滚动,但是当我尝试这段代码时,它会导致上述错误 "ScrollView can host only one direct child with relativelayout".
Layout.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//Scroll view starts here
<include
android:id="@+id/toolbar"
layout="@layout/view_toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Most Download"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_video_terbaru"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Funny Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherVideoFunny"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_funny_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Religy Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherReligyVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_religi_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Others Video"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="More"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textSize="14sp"
android:textColor="@color/white"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:onClick="onOtherMoreVideo"/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_others_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</ScrollView>
</LinearLayout>
采用相对布局或线性布局,然后将所有视图放入其中,然后用滚动视图包裹这个相对布局 您的问题将得到解决。
Md.ibrahim khalil 给出的答案完全正确,
试试用这个替换你的布局,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//Scroll view starts here
<include
android:id="@+id/toolbar"
layout="@layout/view_toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Most Download"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_video_terbaru"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Funny Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherVideoFunny"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_funny_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Religy Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherReligyVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_religi_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey_868686">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Others Video"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:onClick="onOtherMoreVideo"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="More"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_others_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</LinearLayout>