SnapHelper :illegalstateexception an instance of onflinglistener already set

用过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的源码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容