我遇到了一个从未有过的非常奇怪的问题。
因此,我有一个视图(BottomSheet),该视图封装了RecyclerView
及其空视图。我将其中一个作为View.GONE
,将另一个作为View.VISIBLE
,具体取决于是否要显示项目。
空视图实际上被包装在NestedScrollView
中,因为我需要能够滚动它,以便用户能够上下移动BottomSheet。
问题在于,取决于我构造视图的方式,滚动实际上在RecyclerView
或NestedScrollView
上,无论我先放哪个,都不能放。他们的父母是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>
答案 0 :(得分:2)
1.--放入您的NestedScroll中查看此内容:
android:overScrollMode="never"
现在,当我们使用nestedScrollView并将recyclerView放入nestedScrollView中时,会发生什么问题,它会根据手势以各种速度滚动。滚动功能将不流畅。
2.-因此,要解决此问题,请在设置适配器后要做的所有事情 放在这行:
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
现在,您的recyclerview将可以平滑滚动...
希望它能对您有所帮助!