Siddharth Khetan
Siddharth Khetan

Reputation: 171

Nested LinearLayout not working in scrollview

I am facing a problem that in my Compose.xml there is nested LinearLayout in scroll but when I run the application scroll is not working:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

Upvotes: 1

Views: 1180

Answers (4)

faheem cheema
faheem cheema

Reputation: 11

ScrollView can have only one child. You can put these layout into one linear layout then your scroll view will work.

For more detail read android documentation.

Upvotes: 0

RexSplode
RexSplode

Reputation: 1505

First of all, why do you need that much linearLayouts there? Try use one nested LinearLayout and put all the Buttons in it, one after another. Here's pseudocode.

<ScrollView>
<LinearLayout>
<Button/>
<Button/>
...
<Button/>
</LinearLayout>
</Scrollview>

Also, if it won't help, try to remove this

android:fillViewport="true"

Upvotes: 2

Aditya Vyas-Lakhan
Aditya Vyas-Lakhan

Reputation: 13555

Try this way

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:orientation="vertical" >



            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />


            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="erfer" />

    </LinearLayout>
</ScrollView>

Upvotes: 0

Jenisha Makadiya
Jenisha Makadiya

Reputation: 832

Its already scrolling in My device Moto X2 Your code hase no error, but it takes too much time to load.You can see scrollbar at right side in screenshot below.

You can see scrollbar at right side in screenshot

So don't use too much layout without need. More layouts will take more time to load data, You can also use Single Linear layout and put all buttons into that layout

You can write your code like this :

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:orientation="vertical" >

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="erfer" />

    </LinearLayout>
</ScrollView>

Upvotes: 3

Related Questions