更改 recyclerView 滚动位置参考
Posted
技术标签:
【中文标题】更改 recyclerView 滚动位置参考【英文标题】:Change recyclerView scroll position reference 【发布时间】:2021-11-06 07:08:43 【问题描述】:有没有办法将 recyclerView 的滚动计数器引用更改为从屏幕中心开始,而不是从头开始? 这样,当我调用 linearLayoutManager.findFirstVisibleItemPosition() 时,我会得到项目在屏幕中心而不是在屏幕开头的位置?
【问题讨论】:
【参考方案1】:你的问题不够清楚!但我认为clipToPadding = true
和paddingBottom
可以用recyclerView 解决你的问题我理解你的问题是正确的
【讨论】:
我正在使用带有水平 layoutManager 的 recyclerView,并调用 findFirstVisibleItemPosition() 以返回第一个可见项目,但我需要一种方法来获取屏幕中间的项目。 所以你通过 findLastVisibleItemPosition() 获得了 lastVisiablePosition,中间项目的位置取决于你的逻辑【参考方案2】:我已经找到了解决这个问题的方法,我只是重写了 getPaddingLeft()、getPaddingEnd() 方法,如下所示。
private fun setupLinearManager(context: Context)
linearLayoutManager = object : LinearLayoutManager(context, HORIZONTAL, false)
override fun getPaddingLeft(): Int
return screenWidth / 2
override fun getPaddingEnd(): Int
return screenWidth / 2
recyclerView.layoutManager = linearLayoutManager
【讨论】:
以上是关于更改 recyclerView 滚动位置参考的主要内容,如果未能解决你的问题,请参考以下文章
Android - 在 RecyclerView 中滚动时颜色重复
嵌套的 RecyclerView 滚动无法向下滚动 ViewPager2 的 BottomSheetBehavior
Android必知必会 - RecyclerView 恢复上次滚动位置