简体   繁体   中英

Scrolling of multiple recycler view in an activity. (how to make it smooth)

I have 2 recyclerviews in my activity 1st one is horizontally scrollable and the 2nd one is vertically scrollable. (XML code given below) But the scrolling is not smooth.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#eeeeee"
    android:clickable="true"
    >
    <ProgressBar
        android:id="@+id/progressBarCircularIndetermininatesearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminateTintMode="src_atop"
        android:indeterminateTint="#f44336"
        android:layout_centerInParent="true"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/progressbacklin"
        android:scrollbars="none"
        >
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/videolist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        android:layout_alignParentTop="true"
        android:scrollbars="none"
        />


    <android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        android:layout_below="@+id/videolist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        android:scrollbars="none"
        />
        </RelativeLayout>
</ScrollView>
    <LinearLayout
        android:id="@+id/progressbacklin"
        android:layout_above="@+id/adViewsearch"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginBottom="90dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/white"
        android:gravity="center"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        >
        <ProgressBar
            android:id="@+id/progressBarCircularIndetermininate"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:indeterminateTintMode="src_atop"
            android:indeterminateTint="#f44336"
            android:layout_centerInParent="true"/>
    </LinearLayout>
    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adViewsearch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_ad_unit_id" />

</RelativeLayout>

i use

setNestedScrollingEnabled(false); 

for both recycler view.

Any ideas to implement this with a smooth scrolling?

Change ScrollView to NestedScrollView .

In order this to work, you need to have RecyclerView with height wrap_content inside NestedScrollView and you need to set recyclerView.setNestedScrollingEnabled(false) from code.

How i solved this problem is by using a single Recycler view instead of two and setting up the other (1st recycler view in question) recycler view as first item of it. Now it works perfect and scrolling smoothly.

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