Search code examples
javaandroidlayoutviewhorizontalscrollview

Make RelativeLayout non-scrollable in horizontal scrollview


Hi i want to make a relative layout non scroll-able in horizontal scroll view. Searched google a lot but did not got any good solution. This is my xml file:

<?xml version="1.0" encoding="utf-8"?>
 <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
     >

<RelativeLayout
    android:id="@+id/relativeLayout3"
    android:layout_width="1267dp"
    android:layout_height="wrap_content" >

<RelativeLayout
    android:id="@+id/relativeLayout4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >


        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar_10"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_marginLeft="57dp" />

    </RelativeLayout>
        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar_9"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_alignTop="@+id/vertical_Seekbar_1"
            android:layout_marginLeft="57dp"
            android:layout_toRightOf="@+id/vertical_Seekbar_1" />

        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar_2"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_alignRight="@+id/relativeLayout2"
            android:layout_alignTop="@+id/vertical_Seekbar_9" />

        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/vertical_Seekbar_2" />

        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar_1"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="60dp"
            android:layout_marginLeft="50dp"
            android:layout_toRightOf="@+id/vertical_Seekbar_3" />

        <com.androidhive.musicplayer.VerticalSeekBar
            android:id="@+id/vertical_Seekbar_3"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_alignLeft="@+id/slider_label_1"
            android:layout_alignTop="@+id/vertical_Seekbar_1" />



</RelativeLayout>

        </HorizontalScrollView>

I want relativelayout with id "relative_layout4" to be always vsible. only bottom part should scroll horizontally.

Please suggest me how to do it .

Thanks in advance :)


Solution

  • To disable any type of ScrollView, simply add android:enabled="false" to your ScrollView. This will disable scrolling.

    But why would you need to disable HorizontalScrollView? You should remove it rather than disabling it, if you don't need scrolling...

    Edit:

    If you want to only enable scrolling in a certain part, just move the HorizontalScrollView to where you want.

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">
    
            <com.androidhive.musicplayer.VerticalSeekBar
                android:id="@+id/vertical_Seekbar_1"
                android:layout_width="wrap_content"
                android:layout_height="200dp" />
    
        </RelativeLayout>
    
        <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="center"
                android:orientation="horizontal">
    
                <com.androidhive.musicplayer.VerticalSeekBar
                    android:id="@+id/vertical_Seekbar_2"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp"
                    android:layout_marginEnd="50dp"
                    android:layout_marginRight="50dp" />
    
                <com.androidhive.musicplayer.VerticalSeekBar
                    android:id="@+id/vertical_Seekbar_3"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp"
                    android:layout_marginEnd="50dp"
                    android:layout_marginRight="50dp" />
    
                <com.androidhive.musicplayer.VerticalSeekBar
                    android:id="@+id/vertical_Seekbar_4"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp"
                    android:layout_marginEnd="50dp"
                    android:layout_marginRight="50dp" />
    
                <com.androidhive.musicplayer.VerticalSeekBar
                    android:id="@+id/vertical_Seekbar_5"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp"
                    android:layout_marginEnd="50dp"
                    android:layout_marginRight="50dp" />
    
                <com.androidhive.musicplayer.VerticalSeekBar
                    android:id="@+id/vertical_Seekbar_6"
                    android:layout_width="wrap_content"
                    android:layout_height="200dp" />
    
            </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>
    

    It might still need some editing because I don't know how your views look like.