实现两个recycleview同步滚动

最近在产品上有一个需求需要实现两个recycleview进行同步滚动,废话不多说直接上代码
java

RecyclerView.OnScrollListener[] scrollListeners = new RecyclerView.OnScrollListener[2];
scrollListeners[0] = new RecyclerView.OnScrollListener( )
    {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy)
        {
            super.onScrolled(recyclerView, dx, dy);
            rlv_stock_bd_data.removeOnScrollListener(scrollListeners[1]);
            rlv_stock_bd_data.scrollBy(dx, dy);
            rlv_stock_bd_data.addOnScrollListener(scrollListeners[1]);
        }
    };
    scrollListeners[1] = new RecyclerView.OnScrollListener( )
    {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy)
        {
            super.onScrolled(recyclerView, dx, dy);
            rlv_name.removeOnScrollListener(scrollListeners[0]);
            rlv_name.scrollBy(dx, dy);
            rlv_name.addOnScrollListener(scrollListeners[0]);
        }
    };
    rlv_name.addOnScrollListener(scrollListeners[0]);
    rlv_stock_bd_data.addOnScrollListener(scrollListeners[1]);

Kotlin

val scrollListeners: Array<RecyclerView.OnScrollListener?> = arrayOfNulls<RecyclerView.OnScrollListener>(2)
scrollListeners[0] = object :RecyclerView.OnScrollListener(){
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                rlv_stock_bd_data.removeOnScrollListener(scrollListeners[1]!!);
                rlv_stock_bd_data.scrollBy(dx, dy);
                rlv_stock_bd_data.addOnScrollListener(scrollListeners[1]!!);
            }
        }
        scrollListeners[1] = object :RecyclerView.OnScrollListener(){
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                rlv_name.removeOnScrollListener(scrollListeners[0]!!);
                rlv_name.scrollBy(dx, dy);
                rlv_name.addOnScrollListener(scrollListeners[0]!!);
            }
        }
        rlv_name.addOnScrollListener(scrollListeners[0]!!);
        rlv_stock_bd_data.addOnScrollListener(scrollListeners[1]!!);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容