在RecyclerView的Adapter本身中获得之前的位置,可以通过以下步骤实现:
下面是一个示例代码:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
private int mPreviousPosition = RecyclerView.NO_POSITION;
public MyAdapter(List<String> data) {
mData = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// 创建ViewHolder
// ...
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// 绑定数据到ViewHolder
// ...
// 保存当前位置到之前的位置变量
mPreviousPosition = holder.getAdapterPosition();
}
@Override
public int getItemCount() {
return mData.size();
}
public int getPreviousPosition() {
return mPreviousPosition;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
// ViewHolder的定义
// ...
}
}
在需要获取之前位置的地方,可以调用getPreviousPosition()方法来获取之前的位置。
这种方法可以在Adapter本身中保存之前的位置,并且不依赖于RecyclerView的特定方法或属性。
领取专属 10元无门槛券
手把手带您无忧上云