如何检测特定项目何时到达Android中的RecyclerView?

Mar*_*ngs 5 android android-recyclerview

我正在使用RecyclerView创建一个包含问题列表的应用程序.在相同的父布局中,我在RecyclerView上方有一个静态TextView,它显示一组问题的说明.我想要的是在滚动时每当特定问题到达RecyclerView的顶部时更改TextView中的文本.我怎么能做到这一点?

Gau*_*ier 6

您需要收听RecyclerView的滚动并将第一个项目显示在屏幕上.

谢天谢地,Android让我们将自定义ScrollListener设置为RecyclerView,使用LayoutManager,您可以知道首先显示哪个项目:

// initialize your RecyclerView and your LayoutManager
mLinearLayoutManager = new LinearLayoutManager(getContext());
mRecyclerView.setLayoutManager(mLinearLayoutManager);

// set a custom ScrollListner to your RecyclerView
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
           // Get the first visible item
           int firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition();

           //Now you can use this index to manipulate your TextView

        }
    });
Run Code Online (Sandbox Code Playgroud)

编辑:添加关于LayoutManager的Mateus Gondim清除


Chr*_*ock 0

您应该覆盖默认的 Recycler.OnScrollListener。看看这段代码:https://gist.github.com/mipreamble/b6d4b3d65b0b4775a22e