合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
SnapHelper是RecyclerView的辅助类,用于控制在滑动结束后,RecyclerView中item的对齐方式。SnapHelper是一个抽象类,系统内置了两个默认实现类:LinearSnapHelper和PagerSnapHelper。
LinearSnapHelper使当前Item居中显示,常用场景是横向的RecyclerView,类似ViewPager效果,但是又可以快速滑动(滑动多页)。而PagerSnapHelper的展示效果和LineSnapHelper是一样的,只是PagerSnapHelper限制一次只能滑动一页,不能快速滑动。
SnapHelper通过处理RecyclerView的fling,来达到要展示的效果。使用SnapHelper时,需要将其绑定到RecyclerView控件上。可以通过计算对齐RecyclerView中TargetView的指定点或者容器中的任何像素点,使RecyclerView实现类似于ViewPager的切换效果。
LinearSnapHelper效果:
PagerSnapHelper效果:
val snapHelper = LinearSnapHelper()
snapHelper.attachToRecyclerView(recyclerView)
//或
val snapHelper = PagerSnapHelper()
snapHelper.attachToRecyclerView(recyclerView)
TOP