关于setOnScrollListener的firstVisibleItem索引错位的解决方法

下面以一个通讯录demo来讲解,首先看下错误的情况

右边的quickBar调用左边contactListView.setSelection(position)来定位,然后通过监听contactListView的onscroll监听器来设置右边quickBar中变色的字母,但是右边显示的字母并不是E而是D!下面来分析下原因:

二姐这个联系人的真实position是6

但是通过跟踪log发现contactListView.setSelection(6)在onScroll回调中firstVisibleItem显示的是5。所以导致获取的联系人是position=5的联系人即董XX所以右侧显示的是D变色(图一)。引起出错的地方

当dividerHeight=0dp时,divider不能设置成@color/xx,而是设置成@null

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

推荐阅读更多精彩内容