如何阻止我的 recyclerview 允许向左滑动而只允许向右滑动?
How can I stop my recyclerview from allowing left swipe and only allow right swipe?
我正在使用 https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/ 中的示例来处理 RecyclerView
上的拖动和滑动。它工作得很好,除了我不知道如何阻止它允许 up/down/left 滑动。我可以忽略滑动,但我什至不希望它们发生。这可能吗?
我什至在上面链接的示例中修改了这段代码,将 ItemTouchHelper.RIGHT
添加到滑动标志中,但没有帮助。
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
// Set movement flags based on the layout manager
if (recyclerView.getLayoutManager() instanceof GridLayoutManager) {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
final int swipeFlags = 0;
return makeMovementFlags(dragFlags, swipeFlags);
} else {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT ;
return makeMovementFlags(dragFlags, swipeFlags);
}
}
我是 android 的新手,所以不确定这是否适合您,但它对我有用。
我设法通过更改 ItemTouchHelper.SimpleCallback
构造函数来做到这一点(也许尝试使用 SimpleCallback
而不是您当前正在使用的回调?)。
过去常说:
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT |
ItemTouchHelper.RIGHT)
现在是
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT)
希望对您有所帮助。
修改
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT ;
至
final int swipeFlags = ItemTouchHelper.RIGHT ;
我正在使用 https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/ 中的示例来处理 RecyclerView
上的拖动和滑动。它工作得很好,除了我不知道如何阻止它允许 up/down/left 滑动。我可以忽略滑动,但我什至不希望它们发生。这可能吗?
我什至在上面链接的示例中修改了这段代码,将 ItemTouchHelper.RIGHT
添加到滑动标志中,但没有帮助。
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
// Set movement flags based on the layout manager
if (recyclerView.getLayoutManager() instanceof GridLayoutManager) {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
final int swipeFlags = 0;
return makeMovementFlags(dragFlags, swipeFlags);
} else {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT ;
return makeMovementFlags(dragFlags, swipeFlags);
}
}
我是 android 的新手,所以不确定这是否适合您,但它对我有用。
我设法通过更改 ItemTouchHelper.SimpleCallback
构造函数来做到这一点(也许尝试使用 SimpleCallback
而不是您当前正在使用的回调?)。
过去常说:
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT |
ItemTouchHelper.RIGHT)
现在是
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT)
希望对您有所帮助。
修改
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT ;
至
final int swipeFlags = ItemTouchHelper.RIGHT ;