Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.content.Context
- import android.graphics.PointF
- import android.support.v7.widget.LinearLayoutManager
- import android.support.v7.widget.LinearSmoothScroller
- import android.support.v7.widget.RecyclerView
- class SmoothScrollableLinearLayoutManager @JvmOverloads constructor(context: Context, orientation: Int = LinearLayoutManager.VERTICAL, reverseLayout: Boolean = false) : LinearLayoutManager(context, orientation, reverseLayout) {
- override fun smoothScrollToPosition(recyclerView: RecyclerView, state: RecyclerView.State, position: Int) {
- startSmoothScroll(TopSnappedSmoothScroller(recyclerView.context).apply {
- targetPosition = position
- })
- }
- private inner class TopSnappedSmoothScroller(context: Context) : LinearSmoothScroller(context) {
- override fun computeScrollVectorForPosition(targetPosition: Int): PointF {
- return this@SmoothScrollableLinearLayoutManager.computeScrollVectorForPosition(targetPosition)
- }
- override fun getVerticalSnapPreference(): Int = SNAP_TO_START
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement