需求
当有两个列表相互需要定位的时候,例如:外卖购买分类+外卖菜单。
实现方式
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组件进行使用~