监听RecyclerView滑动到顶部或底部

1,630 阅读1分钟

需求:需要在recyclerView的开始、结束增加图标,判断是否到达顶点。即滑动到顶部时顶部的按钮隐藏、底部的按钮显示;滑动到底部时底部的按钮隐藏,顶部按钮显示;滑动到中间时2个按钮均显示。

binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
    }

    @Override
    public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        if (!binding.recyclerView.canScrollVertically(1)) {
            Log.d(TAG, "onScrolled====: 已经到底部");
        } else {
            Log.d(TAG, "onScrolled====: 可以向上滑动");
        }
        
        if (!binding.recyclerView.canScrollVertically(-1)) {
            Log.d(TAG, "onScrolled====: 已经到顶部");
        } else {
            Log.d(TAG, "onScrolled====: 可以向下滑动");
        }

    }
});