效果图
![](https://i-blog.csdnimg.cn/blog_migrate/a1da6ddae40603660868899f33ec7d78.gif)
适配器设置:传递条目点击事件
private OnItemClickListener mOnItemClickListener;
public interface OnItemClickListener{
void onClick(View view,int position);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.itemView.setTag(holder);
holder.itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
ViewHolder holder= (ViewHolder) v.getTag();
mOnItemClickListener.onClick(v,holder.getLayoutPosition());
}
Activity
mItemRvAdapter.setOnItemClickListener(new ItemRvAdapter.OnItemClickListener() {
@Override
public void onClick(View view, int position) {
int size = mStudents.size();
if (size>2) {
if ( position> 1 && position< size - 2) {
moveToCenter(view);
} else if (position>= 0 && position< 2) {
mRv.smoothScrollToPosition(0);
} else {
mRv.smoothScrollToPosition(size-1);
}
}
}
});
private void moveToCenter(View itemView) {
int[] locationView = new int[2];
itemView.getLocationOnScreen(locationView);
int viewWidth = itemView.getWidth();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
int centerX = dm.widthPixels / 2;
int distance = locationView[0] - centerX + viewWidth / 2;
mRv.smoothScrollBy(distance, 0);
}