下面以一个通讯录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