我正在使用 gridLayoutManager 来显示我的 RecyclerView 项目。我还对项目实施了 onClick 和 onLongClick
public void onItemClicked(int position) {
final SquareImageView clickedItem = (SquareImageView)(lLayout.findViewByPosition(position));
if (actionMode != null) {
if(clickedItem.getPaddingLeft() == 1) clickedItem.setPadding(7,7,7,7);
else clickedItem.setPadding(1,1,1,1);
} else {
thumbView = (SquareImageView)(lLayout.findViewByPosition(position));
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH)
zoomImageFromThumb(position);
else
imageFromThumb(position);
}
}
@Override
public boolean onItemLongClicked(int position) {
final SquareImageView clickedItem = (SquareImageView)(lLayout.findViewByPosition(position));
clickedItem.setPadding(7,7,7,7);
if (actionMode == null) {
actionMode = startSupportActionMode(new ActionModeCallback());
actionMode.getMenu().findItem(R.id.menu_remove).setIcon(new IconDrawable(this, Iconify.IconValue.fa_trash).colorRes(R.color.accent_color).actionBarSize());
}
return true;
}
如您所见,如果 actionMode 不为空,我只是在 longClick 和单击时更改单击项目的填充。
一切都按预期工作:如果我长按第一项,它的填充确实会改变,但是当我滚动到网格的底部时,填充已经转移到底部图像或其他一些随机图像。同样,如果我滚动到顶部,顶部项目将没有填充,并且填充已转移到其他一些随机元素。
这个问题是由于元素回收造成的吗?我该如何摆脱这个?