2016-04-14 77 views
1

我使用https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/中的示例來處理RecyclerView上的拖動和滑動操作。除了我不知道如何阻止它向上/向下/向左滑動之外,它工作得很好。我可以忽略滑動,但我不希望它們發生。那可能嗎?如何阻止我的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); 
     } 
    } 
+0

「我甚至修改這個代碼在我上面掛ItemTouchHelper.RIGHT添加到刷卡標誌的例子,但它並沒有幫助。」這是正確的方向,請發佈您的修改代碼 –

+0

代碼已發佈。看看這行'final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT;'我也測試過以確保代碼被調用。 – casolorz

回答

1

修改

final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END | ItemTouchHelper.RIGHT ; 

final int swipeFlags = ItemTouchHelper.RIGHT ; 
+1

謝謝你,修復它。 – casolorz

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) 

希望有所幫助。