1. 程式人生 > >Android中NestedScrollView巢狀RecyclerView出現滾動不流暢的問題

Android中NestedScrollView巢狀RecyclerView出現滾動不流暢的問題

在使用support-v4包中的NestedScrollView時,如果在其中巢狀使用RecyclerView,會出現滑動不流暢的問題,佈局如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/nestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        android:scrollbars="none">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/top_bg_img"
                android:layout_width="match_parent"
                android:layout_height="240dp"
                android:scaleType="centerCrop"
                android:src="@mipmap/image_1" />

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:overScrollMode="never" />
        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:titleTextAppearance="@style/ToolBar.TitleText"
        app:titleTextColor="@android:color/white" />

</FrameLayout>

解決方法:

獲取到RecyclerView並呼叫setNestedScrollingEnabled(false)方法。(注:不管嵌套了幾個RecyclerView,每一個都呼叫該方法。)