如何阻止我的recyclerview允许向左滑动并且只允许右键滑动?

时间:2016-04-14 16:50:35

标签: android android-recyclerview android-support-library

我使用https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/中的示例来处理RecyclerView上的拖动和滑动。它工作得很好,除了我不知道如何阻止它允许上/下/左滑动。我可以忽略滑动,但我甚至不希望它们发生。这可能吗?

我甚至在上面链接的示例中修改了此代码,以将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);
        }
    }

2 个答案:

答案 0 :(得分:2)

修改

final int swipeFlags = ItemTouchHelper.RIGHT ;

document.write()

答案 1 :(得分:0)

我对Android很新,所以不确定这是否适合你,但它确实适合我。

我设法通过更改ItemTouchHelper.SimpleCallback构造函数来实现此目的(也许尝试使用SimpleCallback而不是您当前正在使用的回调?)。

过去常说:

    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = 
              new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | 
               ItemTouchHelper.RIGHT)

现在说

    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = 
             new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) 

希望有所帮助。