Scrollview can host only one direct child

134,281

Wrap all the children inside of another LinearLayout with wrap_content for both the width and the height as well as the vertical orientation.

Share:
134,281

Related videos on Youtube

user2407147
Author by

user2407147

Updated on May 19, 2020

Comments

  • user2407147
    user2407147 almost 4 years

    I have multiple LinearLayouts with a combined height that easily exceeds a device's screen height. So in order to make my layout scrollable, I tried adding in a ScrollView, but unfortunately I get the following error:

    Scrollview can host only one direct child

    I did some research, but couldn't really make sense of how to solve it, even after reading a couple of solutions. I tried a few changes, but nothing worked for me so far. Any help?

    <?xml version="1.0" encoding="utf-8"?>
    
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
        <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="20dip">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 1"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q1_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 2"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q2_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 3"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q3_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 4"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q4_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 5"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q5_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
        <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 6"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q6_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>        <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 7"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q7_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 8"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q8_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 9"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q9_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 10"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q10_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 11"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q11_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 12"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q12_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 13"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q13_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 14"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q14_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 15"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q15_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 16"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q16_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 17"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q17_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 18"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q18_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 19"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q19_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    </LinearLayout>
            <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Question 20"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/q20_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text=""
            android:gravity="center"/>
    
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Score:"
            android:paddingBottom="20dip"
            android:gravity="center" />
        <TextView
            android:id="@+id/final_score"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="0/5"
            android:gravity="center"/>
    </LinearLayout>
        </LinearLayout>
            </ScrollView>
    
    • VIISHRUT MAVANII
      VIISHRUT MAVANII about 3 years
    • Pravin Desai
      Pravin Desai almost 3 years
      Scrollview should have only one child (ViewGroup), inside that you can add multiple views.
  • Marko Lazić
    Marko Lazić almost 11 years
    This is a correct way to go.
  • user2407147
    user2407147 almost 11 years
    Thank you so much! Would you be able to take a look at another question of mine? link
  • Justin Breitfeller
    Justin Breitfeller almost 11 years
    I answered your other question, don't forget to accept answers with the big check so we know we have answered your question.
  • maracuja-juice
    maracuja-juice over 6 years
    Does this also work with Constraint Layout nowadays?