NestedScrollView和RecyclerView即使没有嵌套也没有滚动吗?

时间:2019-08-02 13:32:25

标签: android android-recyclerview

我遇到了一个从未有过的非常奇怪的问题。

因此,我有一个视图(BottomSheet),该视图封装了RecyclerView及其空视图。我将其中一个作为View.GONE,将另一个作为View.VISIBLE,具体取决于是否要显示项目。 空视图实际上被包装在NestedScrollView中,因为我需要能够滚动它,以便用户能够上下移动BottomSheet。

问题在于,取决于我构造视图的方式,滚动实际上在RecyclerViewNestedScrollView上,无论我先放哪个,都不能放。他们的父母是RelativeLayout(请看下面的代码)。

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

    <androidx.core.widget.NestedScrollView
        android:id="@+id/empty_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone"
        tools:visibility="visible"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center_horizontal"
            android:layout_marginTop="115dp"
            android:orientation="vertical"
            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_marginTop="7dp"
                android:textAlignment="center"
                />

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>

    <com.myproject.CustomRecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:paddingBottom="36dp"
        android:paddingTop="10dp"
        app:emptyView="@id/empty_view"
        />

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

1.--放入您的NestedScroll中查看此内容:

android:overScrollMode="never"

现在,当我们使用nestedScrollView并将recyclerView放入nestedScrollView中时,会发生什么问题,它会根据手势以各种速度滚动。滚动功能将不流畅。

2.-因此,要解决此问题,请在设置适配器后要做的所有事情 放在这行:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

现在,您的recyclerview将可以平滑滚动...

希望它能对您有所帮助!