更改 recyclerView 滚动位置参考

Posted

技术标签:

【中文标题】更改 recyclerView 滚动位置参考【英文标题】:Change recyclerView scroll position reference 【发布时间】:2021-11-06 07:08:43 【问题描述】:

有没有办法将 recyclerView 的滚动计数器引用更改为从屏幕中心开始,而不是从头开始? 这样,当我调用 linearLayoutManager.findFirstVisibleItemPosition() 时,我会得到项目在屏幕中心而不是在屏幕开头的位置?

【问题讨论】:

【参考方案1】:

你的问题不够清楚!但我认为clipToPadding = truepaddingBottom 可以用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

Recyclerview 在滚动期间更改项目

Android必知必会 - RecyclerView 恢复上次滚动位置

如何使用 RecyclerView.State 保存 RecyclerView 的滚动位置?

RecyclerView 在项目更改时向上滚动