Skip to content

Instantly share code, notes, and snippets.

@CodeK1988
Last active April 28, 2019 02:07
Show Gist options
  • Save CodeK1988/9555bb8307ca1ff71674acd9eeb2cc4b to your computer and use it in GitHub Desktop.
Save CodeK1988/9555bb8307ca1ff71674acd9eeb2cc4b to your computer and use it in GitHub Desktop.
RecyclerView 拓展
fun RecyclerView.attachSnapHelperWithListener(
snapHelper: SnapHelper,
onSnapPositionChangeListener: Utils.OnSnapPositionChangeListener) {
snapHelper.attachToRecyclerView(this)
val snapOnScrollListener = SnapOnScrollListener(snapHelper, onSnapPositionChangeListener)
addOnScrollListener(snapOnScrollListener)
}
fun SnapHelper.getSnapPosition(recyclerView: RecyclerView): Int {
val layoutManager = recyclerView.layoutManager ?: return RecyclerView.NO_POSITION
val snapView = findSnapView(layoutManager) ?: return RecyclerView.NO_POSITION
return layoutManager.getPosition(snapView)
}
@CodeK1988
Copy link
Author

interface OnSnapPositionChangeListener {
fun onSnapPositionChange(position: Int)
fun onScrolled(position: Int)
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment