简体   繁体   中英

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 这是布局的样子

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

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">

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;
    }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM