[英]ItemTouchHelper with SpannedGridLayoutManager - RecyclerView issues
我在RecyclerView中将ItemTouchHelper与SpannedGridLayoutManager结合使用时遇到问题,当拖动到拖动对象旁边的项目时,拖动会过早结束。 我知道它是小故障的布局管理器,因为它可以与其他布局管理器一起使用而不会出现任何问题。
有人解决了吗?
onSelectedChanged(RecyclerView.ViewHolder,int)回调提供有关当前actionState的信息:-ACTION_STATE_IDLE:-ACTION_STATE_DRAG-ACTION_STATE_SWIPE
因此,您可以跟踪订单是否更改,以及当状态更改为ACTION_STATE_IDLE时,您可以执行所需的操作!
实现这样的回调类。
class CardsTouchHelperCallback extends ItemTouchHelper.Callback {
...
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder,
RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();
dragFrom = fromPosition;
dragTo = toPosition;
mOrderChanged = true;
return false;
}
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
super.onSelectedChanged(viewHolder, actionState);
if (actionState == ItemTouchHelper.ACTION_STATE_IDLE && mOrderChanged) {
//doSomething();
touchHelperAdapter.onItemMove(dragFrom, dragTo);
mOrderChanged = false;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.