maikucao
maikucao

Reputation: 129

Relative Layout does not scroll after adding scrollview

Good day. I have a layout code shown below

<?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:fillViewport="true" >

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        tools:context=".MainActivity">

        <include
            android:id="@+id/toolbar"
            layout="@layout/app_bar" />


        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="165dp"
            android:layout_below="@+id/toolbar" />

        <RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="25dp"
            android:layout_alignBottom="@id/viewpager"
            android:background="#33000000">

            <TextView
                android:id="@+id/tv_image_description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:paddingLeft="10dp"
                android:text="Shop Name"
                android:textColor="#FFF" />


            <LinearLayout
                android:id="@+id/ll_point_group"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:orientation="horizontal"
                android:paddingRight="10dp">

            </LinearLayout>
        </RelativeLayout>


        <android.support.v7.widget.RecyclerView
            android:id="@+id/cardList"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/relativeLayout" />


    </RelativeLayout>
</ScrollView>

I have connected my recyclerview with a list of data but why is RecyclerView Layout is scrollable but not the entire Relativelayout. I have wrapped the RelativeLayout with ScrollView. it seems like not working. please see the image below This is how to layout look like

Do let me know if you guys have better solution for this. Billion thanks.

Upvotes: 0

Views: 631

Answers (2)

Rahul Gupta
Rahul Gupta

Reputation: 5295

You have added one scrolling component in another- RecycleView in a Scrollview So only one will take focus. This is against android guidelines. you should never put one scrolling component in another. However to achieve both scrolling

yourRecycleView.setOnTouchListener(new OnTouchListener() {
    // Setting on Touch Listener for handling the touch inside ScrollView
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    // Disallow the touch request for parent scroll on touch of child view
    v.getParent().requestDisallowInterceptTouchEvent(true);
    return false;
    }
});

Upvotes: 1

Bidhan
Bidhan

Reputation: 10697

Change your RelativeLayout height to wrap_content

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

Upvotes: 1

Related Questions