SnapHelper问题与第一项和最后一项

时间:2019-03-25 10:05:36

标签: android android-recyclerview pagersnaphelper

我正在将Recyclerview与PageSnapHelper一起使用来创建图像轮播。

First item - Not Centered enter image description here

Second Item Centered

第一个项目未居中,后续项目应居中,我已经使用项目装饰器实现了此目的。 RecyclerView位于嵌套的滚动视图中。

问题: 滚动不流畅,我覆盖了findTargetSnapPosition,正在滚动第二个项目。

 override fun findTargetSnapPosition(layoutManager: RecyclerView.LayoutManager, velocityX: Int, velocityY: Int): Int {

    if (layoutManager !is RecyclerView.SmoothScroller.ScrollVectorProvider) {
        return RecyclerView.NO_POSITION
    }

    val currentView = findSnapView(layoutManager) ?: return RecyclerView.NO_POSITION

    val layoutManager = layoutManager as LinearLayoutManager

    val position1 = layoutManager.findFirstVisibleItemPosition()
    val position2 = layoutManager.findLastVisibleItemPosition()

    var currentPosition = layoutManager.getPosition(currentView)



    if (velocityX > 500) {
        currentPosition = position2
    } else if (velocityX < 500) {
        currentPosition = position1
    }

    return if (currentPosition == RecyclerView.NO_POSITION) {
        RecyclerView.NO_POSITION
    } else currentPosition

}

0 个答案:

没有答案