需求:
为了让用户有更佳的体验,RecyclerView 点击后,假如后面还有数据要自动滑动一下,让用户知道这个是可以滑动滴,而且还是有数据滴
解决:
横竖效果通用,该方法 i 参数为当前点击的条目的下标,size为RecyclerView的数据长度, 该方法 比较友好的滑动 smoothScrollToPosition(),滑动到的位置是刚显示的位置,所以这里多添加了两条数据,具体多显示第几条根据需求随便改就行。。
//自动滑动效果,告知用户还能滑动和其他控件
int mFirstVisiblePosition = 0; //上次点击的位置
private void toPosition(int i,int size) { // i 当前点击的条目,size数据总长度
int ScrollToPosition; //要滑动的位置
if (i - mFirstVisiblePosition > 0) { //右边
if (i + 2 < size) { //保证在数据长度内
ScrollToPosition = i + 2;
} else {
ScrollToPosition = size;
}
} else { //左边
if (i - 2 > 0) { //保证不会越界
ScrollToPosition = i - 2;
} else {
ScrollToPosition = 0;
}
}
tztGroupingHorizontalRecyclerView.smoothScrollToPosition(ScrollToPosition); //滑动方法
mFirstVisiblePosition = i; //重新赋值
}