滚动 NestedScrollView 时如何获取 recyclerview 的当前项目位置?

Posted

技术标签:

【中文标题】滚动 NestedScrollView 时如何获取 recyclerview 的当前项目位置?【英文标题】:How to get current item position of recyclerview while scrolling a NestedScrollView? 【发布时间】:2019-05-05 16:57:29 【问题描述】:

我在nestedScrollView android中有recycler view,如何在滚动nestedScrollView时获取recyclerview的当前item位置

    <?xml version="1.0" encoding="utf-8"?>
      <android.support.v4.widget.NestedScrollView
       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:id="@+id/constraintMain"
        android:layout_
        android:layout_>
       <Linearlayout 
        android:layout_
        android:orientation="vertical"
        android:layout_>
           <ImageView
            android:id="@+id/imageView1"
            android:layout_
            android:layout_
            android:layout_marginBottom="5dp"
            android:src="@drawable/logo" />


            <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_view_all"
                    android:layout_
                    android:nestedScrollingEnabled="false"
                    android:layout_
                    android:scrollbars="vertical" />

        </Linearlayout>

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

addOnScrollListenersetOnScrollListener 函数 不使用 recyclerview 调用

【问题讨论】:

【参考方案1】:

您可以从布局管理器中找到回收站视图的第一个可见项。

LinearLayoutManager myLayoutManager = myRecyclerView.getLayoutManager();
int scrollPosition = myLayoutManager.findFirstVisibleItemPosition();

其他都是

findFirstCompletelyVisibleItemPosition()
findLastCompletelyVisibleItemPosition()

根据需要使用。

【讨论】:

它总是返回 0 当前项目是什么意思?您在单击时选择的项目或列表中顶部可见的项目?如果您想要顶部可见的项目,那么上面的代码将适合您。如果您想获取从列表中选择的项目。为此,您必须为回收站视图适配器中的每个项目监听一个点击事件。 我只是在 onScrollChange 中将这段代码用于nestedscrollview,但它的 stell 显示 scrollPosition 为 0 请告诉我,您所说的当前职位是什么意思?它是在顶部还是点击的项目?

以上是关于滚动 NestedScrollView 时如何获取 recyclerview 的当前项目位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 NestedScrollView&CollapsingToolbarLayout 的滚动,例如当下面没有更多内容时?

在带有 RecyclerView 的 NestedScrollView 中无法正确显示过度滚动效果

当在nestedscrollview的recyclerview中将项目拖出可见空间时-nestedscrollView不滚动

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

当尝试从带有点击事件的视图滚动时,滚动在 NestedScrollView 中不起作用

内容更改时,NestedScrollView 在顶部滚动