回收器向左滑动和向右滑动执行不同的操作
Recycler swipe left and swipe right perform different actions
我有以下回收器视图代码,允许用户向右滑动(从视图中删除卡片并从 SQLite 数据库中删除数据),还允许用户移动标签以重新排列。有用。我很开心。
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//awesome code when user grabs recycler card to reorder
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
//awesome code to run when user drops card and completes reorder
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//awesome code when swiping right to remove recycler card and delete SQLite data
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
现在,我想添加向左滑动并执行与向右滑动不同的操作的功能。到目前为止我找到的所有解决方案都需要重写我的代码。有任何关于将向左滑动添加到我现有代码的建议吗?
使用 direction
参数 onSwiped()
。参见documentation。您可以根据您是向右滑动还是向左滑动进行调整。
在onSwiped
方法上,添加-
if (direction == ItemTouchHelper.RIGHT) {
//whatever code you want the swipe to perform
}
然后左滑另一个-
if (direction == ItemTouchHelper.LEFT) {
//whatever code you want the swipe to perform
}
对我来说,方向returnsSTART/END不是LEFT/RIGHT,所以这就是我必须做的。
if(direction == ItemTouchHelper.START) {
// DO Action for Left
} else if(direction == ItemTouchHelper.END) {
// DO Action for Right
}
我有以下回收器视图代码,允许用户向右滑动(从视图中删除卡片并从 SQLite 数据库中删除数据),还允许用户移动标签以重新排列。有用。我很开心。
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//awesome code when user grabs recycler card to reorder
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
//awesome code to run when user drops card and completes reorder
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//awesome code when swiping right to remove recycler card and delete SQLite data
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
现在,我想添加向左滑动并执行与向右滑动不同的操作的功能。到目前为止我找到的所有解决方案都需要重写我的代码。有任何关于将向左滑动添加到我现有代码的建议吗?
使用 direction
参数 onSwiped()
。参见documentation。您可以根据您是向右滑动还是向左滑动进行调整。
在onSwiped
方法上,添加-
if (direction == ItemTouchHelper.RIGHT) {
//whatever code you want the swipe to perform
}
然后左滑另一个-
if (direction == ItemTouchHelper.LEFT) {
//whatever code you want the swipe to perform
}
对我来说,方向returnsSTART/END不是LEFT/RIGHT,所以这就是我必须做的。
if(direction == ItemTouchHelper.START) {
// DO Action for Left
} else if(direction == ItemTouchHelper.END) {
// DO Action for Right
}