做音乐播放器用到的一个功能,当选中的一个条目不在当前页面上的时候,会自己滚动过去
1.监听ListView的滑动事件,并将当前页面可以显示的第一个item和最后一个记录下来
mPlayList.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
{
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
{
mStartItem = firstVisibleItem;
mEndItem = firstVisibleItem + visibleItemCount;
}
});
2.在点击按钮的时候做判断,如果是小于顶部的item,就向上滚动,如果是大于底部的item,就向下滚动
if (position <= mStartItem)
{
mPlayList.smoothScrollBy(-1, 100);
mPlayList.smoothScrollToPosition(position);
}
else if (position >= mEndItem - 1)
{
mPlayList.smoothScrollBy(1, 100);
mPlayList.smoothScrollToPosition(position);
}