如何实现居中的recyclerview

Posted

技术标签:

【中文标题】如何实现居中的recyclerview【英文标题】:How to implement centered recyclerview 【发布时间】:2021-12-02 16:36:43 【问题描述】:

我怎样才能在下图中自己实现这种recyclerview(或ViewPager)。

我尝试了https://github.com/yarolegovich/DiscreteScrollView 库。但它有错误。

【问题讨论】:

这有帮助吗 - Carousal View ,或者你可以创建自己的视图而不是依赖库 - paging image carousel But it has bugs. - 什么样的错误 【参考方案1】:

使用LinearSnapHelper 滚动后将项目对齐到中心。

完整的代码在 kotlin 中

val snapHelper = LinearSnapHelper()
snapHelper.attachToRecyclerView(yourRecyclerView)
yourRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener()
  override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) 
        if (newState == RecyclerView.SCROLL_STATE_IDLE) 
            val centerView = snapHelper.findSnapView(mLayoutManager)
            centerView?.let 
               val visiblePosition = mLayoutManager.getPosition(it)
            
        
    
)

【讨论】:

谢谢你的回答兄弟。我会尝试实现它并告诉你结果 兄弟。我没有使用此答案在我发布的图像中实现 recyclerview,其中中心的图像大于其他两个。因为我认为用动画使 centeredview 的比例比其他的更大似乎有点困难。但是对于另一个相同大小的回收器视图,您的答案对于检测中心视图非常有帮助。无论如何,谢谢。

以上是关于如何实现居中的recyclerview的主要内容,如果未能解决你的问题,请参考以下文章

HTML CSS中如何实现DIV中的图片水平垂直居中对齐

如何实现水平居中和垂直居中

Div 与 CSS 如何实现上下居中

如何实现div的上下左右都居中?

如何实现div的上下左右都居中?

用CSS如何实现单行图片与文字垂直居中