如何阻止我的 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 ;