Search code examples
androidxmlandroid-scrollview

Want to add a scroll view


When I'm trying to add ScrollView its giving me error that Scroll view can contain only a single child. So how to add a ScrollView ? And also when I open my app in various phones all the phones gives different layouts. How do manage the look and feel of the app same for all mobile devices ?

Register.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="#0066CC"
    android:orientation="vertical"

    android:padding="10dp" >

    <ImageView
        android:id="@+id/upImage"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:background="#000"
        android:layout_gravity="center_horizontal"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="465dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:layout_weight="0.02"
        android:layout_marginBottom="100dp"
        android:textSize="15sp"
        android:textStyle="bold"
        android:text="Tap to upload Profile Picture" />

    <EditText
        android:id="@+id/imName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

     android:layout_marginBottom="50dp"
     android:hint="Enter name of the Image"
        android:ems="10" >


    </EditText>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name" />

    <EditText
        android:id="@+id/etName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Age" />

    <EditText
        android:id="@+id/etAge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Username" />

    <EditText
        android:id="@+id/etUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/bRegister"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Register" />

</LinearLayout>

Solution

  • Yes ScrollView allow only single child So put you parent LinearLayout inside ScrollView like below

    <ScrollView 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">
    
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#0066CC"
            android:orientation="vertical"
            android:padding="10dp" >
    
            <ImageView
                android:id="@+id/upImage"
                android:layout_width="300dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" 
                android:background="#000"
                android:layout_gravity="center_horizontal"/>
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="465dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:gravity="center_horizontal"
                android:layout_weight="0.02"
                android:layout_marginBottom="100dp"
                android:textSize="15sp"
                android:textStyle="bold"
                android:text="Tap to upload Profile Picture" />
    
            <EditText
                android:id="@+id/imName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="50dp"
                android:hint="Enter name of the Image"
                android:ems="10" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name" />
    
            <EditText
                android:id="@+id/etName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Age" />
    
            <EditText
                android:id="@+id/etAge"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Username" />
    
            <EditText
                android:id="@+id/etUsername"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Password" />
    
            <EditText
                android:id="@+id/etPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:inputType="textPassword" />
    
            <Button
                android:id="@+id/bRegister"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Register" />
    
        </LinearLayout>
    </ScrollView>