用过snaphelper这个类的都知道,当然它还有个子类LinearSnapHelper,snaphelper可以和recyclerview绑定使用,可以使recyclerview的滑动实现像viewpager一样的滑动效果,只需要2行代码
var snapHelper = PagerSnapHelper()
snapHelper.attachToRecyclerView(recyList)
但是好多时候会抛出一个异常"illegalstateexception an instance of onflinglistener already set".是什么原因呢,网上有一堆说原因的,而解决办法也是很复杂.最近遇到这个问题,在Stack Overflow找到一个比较简单的方法,就是在snapHelper.attachToRecyclerView(recyList)之前加上recyList.onFlingListener = null,就是设置recyclerview的onFlingListener为null,亲测可用.因为抛异常的原因就是跟recyclerview的onFlingListener有关.有兴趣的可以看看recyclerview的源码