1

私は、RecyclerViewでドラッグとスワイプを処理するために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); 
     } 
    } 
+0

に「私も、私はスワイプフラグにItemTouchHelper.RIGHTを追加するために上記のリンクの例では、このコードを変更し、それは助けにはなりませんでした。」それは正しい方向だった、あなたの修正コードを投稿してください –

+0

コードが掲載されています。この行を見てください。 'final int swipeFlags = ItemTouchHelper.START |アイテムのタッチヘルパー.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) 

を言うことができます希望。