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

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

关于setOnScrollListener的firstVisibleItem索引错位的解决方法_第1张图片

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

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

关于setOnScrollListener的firstVisibleItem索引错位的解决方法_第2张图片

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

关于setOnScrollListener的firstVisibleItem索引错位的解决方法_第3张图片

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

你可能感兴趣的:(关于setOnScrollListener的firstVisibleItem索引错位的解决方法)