我将RecyclerView与LinearSnapHelper一起使用。 RecyclerView的项目由TextView和ImageView组成,有时可能不可见。所以,我希望SnapHelper到项目中心到TextView的,忽略了ImageView的。 我尝试添加一个在calculateDistanceToFinalSnap方法抵消,和它的作品,但效果是,当我打电话smoothScrollToPosition,似乎它跳转到“原始”的位置,比向后滚动到我的计算偏移位置。
class CategorySelectorSnapHelper(private val imageViewSize: Int) : LinearSnapHelper() {
override fun calculateDistanceToFinalSnap(layoutManager: RecyclerView.LayoutManager, targetView: View): IntArray? {
val output = super.calculateDistanceToFinalSnap(layoutManager, targetView)
output?.set(0, output[0] - imageViewSize)
return output
}