android - NestedScrollview 内的 RecyclerView 滚动不流畅

标签 android android-recyclerview android-nestedscrollview endlessscroll

当我向下滚动时,除非我从上面的布局开始触摸,否则 RecyclerView 上方的项目不会滚动,并且它只会在我到达 RecyclerView 的末尾时向下滚动。

<NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout>
        <Some other items.../>
    </LinearLayout>

    <RecyclerView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
</NestedScrollView>

注意: 我实际上为 RecyclerView 使用固定大小,通过以下代码设置它:

float height_recyclerview = (ScreenUtil.getHeight(context) - (height_banner + height_bottom_navigation + height_create_post));
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) height_recyclerview);
rv.setLayoutParams(layoutParams);

如果与 wrap_content 配合使用,我为什么要使用固定大小?

  • 我将展示可能有数千件元素 图像,如果它实际上不这样做会损害性能 回收是因为 RecyclerView 在里面 嵌套 ScrollView
  • 我已经实现了一个 EndlessRecyclerViewScrollListener,它有一个 问题是它会不断从服务器加载更多数据,如果 用任何可滚动的 RecyclerView 实现 View ,或者如果它处于可 ScrollView 中,但没有固定的 高度,即使您没有向下滚动也是如此。

我尝试过以下方法:

  • 在回收站 View 中将嵌套滚动设置为 false
  • 尝试使用 ScrollView 而不是嵌套 ScrollView
  • 一堆其他人建议的与布局和滚动行为相关的其他代码对我不起作用,因为我在更复杂的布局中实现它,而且我使用了 EndlessRecyclerViewScrollListener

我想修复什么

我想让页面像单个页面一样滚动,而不是作为单独的可 ScrollView 。

请注意,我的回收站 View 有一个固定的高度,它占据了整个屏幕的空间,这意味着它的高度实际上是合适的,假设如果用户向下滚动,上面的线性布局将不再可见。

理想的场景是先让 scrollview 向下滚动,让 recycler view 占据整个屏幕,这样 recyclerview 就会根据用户的意愿滚动​​。

如果回收 View 已经占据了屏幕的所有空间,那么上面的线性布局应该不再可见,如果回收 View 已经到达顶部/第一个项目,如果用户继续向上滚动,则应该只显示.

最佳答案

Read this.

app:layout_behavior="@string/appbar_scrolling_view_behavior" 添加到您的回收器 xml。

<android.support.v7.widget.RecyclerView
    android:id="@+id/conversation"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

关于android - NestedScrollview 内的 RecyclerView 滚动不流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53949260/

相关文章:

java - ble 信标发射器应用程序运行后关闭

android - 无法加载 AppCompat ActionBar,出现未知错误

java - 如何并行连续递增多个 RecyclerView 值

java - "Back Arrow"发送数据给Parent

android - NestedScrollView 具有约束布局不滚动

android - 电容器 ionic android - 无法向我的服务器发出 GET 请求 - 请求被提供 "from-disk-cache"

java - 无法在 RecyclerView Adapter 中获取 View 位置

android - 如何以编程方式在 NestedScrollView 中显示滚动条。

android - NestedScrollView 修复 NestedScrollView 内的 View 顶部

android - addOnScrollListener 的位置在滚动后加载新数据时重置为顶部