android horizontal scroll view

mr. x picture mr. x · Oct 15, 2012 · Viewed 19.4k times · Source

i am beginner in android development and i am trying to create a horizontal scroll view that will contain different layouts.

the error that i am facing is : horozontal scroll view can only host one direct child. please advise thanks in advance

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tool"
        android:id="@+id/horizontalScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true" >

         <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal"
            android:background="#ff0000">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="horizontal"
                android:background="#ff0000">

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="horizontal"
                android:background="#00ff00">

            </LinearLayout>

        </LinearLayout>

    </HorizontalScrollView>

Answer

Saurabh picture Saurabh · Oct 15, 2012

Not only Horizontal but any vertical scrollview also will give this error. The error means that there should be only one child to a scrollview and that child can contain any number of sub childs.

So the bottom line is thios you should make only one direct child to scrollview and make your layout in that child only as

  <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tool"
    android:id="@+id/horizontalScrollView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true" >

     <LinearLayout

        android:id="@+id/directchild"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:background="#ff0000">

    </LinearLayout>

</HorizontalScrollView>

Now create your desired layout within directchild layout.You will not get any error then