Android 如何查找滚动时显示在RecyclerView顶部的项目

Android 如何查找滚动时显示在RecyclerView顶部的项目,android,android-recyclerview,Android,Android Recyclerview,我一直在为我需要做的事情寻找一个合适的API,我几乎可以肯定必须有一个API。但我没有找到它 我的问题是: 我正在回收器视图中显示ArrayList。我需要的是知道当我上下滚动时,ArrayList中的哪个项目显示在recycler视图的顶部。以下是我如何设置我的回收器视图(没有什么特别之处): 这提供了我需要的侦听器,但我不知道如何从中获取显示在视图顶部的项 提前感谢线性布局管理器中提供了一些方法,如 findFirstCompletelyVisibleItemPosition() int

我一直在为我需要做的事情寻找一个合适的API,我几乎可以肯定必须有一个API。但我没有找到它

我的问题是:

我正在回收器视图中显示ArrayList。我需要的是知道当我上下滚动时,ArrayList中的哪个项目显示在recycler视图的顶部。以下是我如何设置我的回收器视图(没有什么特别之处):

这提供了我需要的侦听器,但我不知道如何从中获取显示在视图顶部的项


提前感谢

线性布局管理器中提供了一些方法,如

findFirstCompletelyVisibleItemPosition()

int findFirstVisibleItemPosition()

int findLastCompletelyVisibleItemPosition()

findLastVisibleItemPosition()

仔细阅读,它肯定会对您有所帮助。

您可以使用LinearLayoutManager的以下方法

int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();

阅读文档

findFirstCompletelyVisibleItemPosition()将返回第一个完全可见视图的适配器位置

您可以这样做:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                int itemPoition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();

                // Get the item from the list
                mList.get(itemPoition)

            }
我想这会对你有帮助。
int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                int itemPoition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();

                // Get the item from the list
                mList.get(itemPoition)

            }