(mBinding.rvSentenceList.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
position, 0
);
也可以在adapter中设置
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
private List<MyData> mDataList;
private int mSelectedPosition = RecyclerView.NO_POSITION;
public interface OnItemClickListener {
void onItemClick(int position);
}
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
mOnItemClickListener = listener;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// inflate view and create ViewHolder
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
// bind data to ViewHolder
// set selected state
holder.itemView.setSelected(position == mSelectedPosition);
holder.itemView.setOnClickListener(v -> {
// update selected state and notify adapter
mSelectedPosition = position;
notifyDataSetChanged();
// scroll to selected position
RecyclerView recyclerView = (RecyclerView) parent;
recyclerView.scrollToPosition(position);
});
}
@Override
public int getItemCount() {
return mDataList.size();
}
}