萌萌の初音
萌萌の初音
发布于 2023-06-29 / 1324 阅读
0

RecyclerView获取当前滑动坐标和滚动到指定位置

需求

当有两个列表相互需要定位的时候,例如:外卖购买分类+外卖菜单。

实现方式

RecyclerView.OnScrollListener+LinearLayoutManager进行配合。

oneList.addOnScrollListener(object : RecyclerView.OnScrollListener() {
	override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
    	super.onScrollStateChanged(recyclerView, newState)
        val firstPosition = (oneList.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition() //获取当前显示范围内第一个坐标
        (twoList.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(firstPosition, 0) //跳转到指定item位置
    }
})

以上就可以实现n个列表间的相互定位了,也可以配合TabLayout组件进行使用~