2 votes

Comment puis-je faire en sorte que mon aperçu recyclé n'autorise pas le balayage à gauche et n'autorise que le balayage à droite ?

J'utilise l'exemple de https://github.com/iPaulPro/Android-ItemTouchHelper-Demo/ pour gérer le glissement et le balayage sur un RecyclerView . Il fonctionne très bien sauf que je ne sais pas comment l'empêcher d'autoriser les balayages vers le haut, le bas et la gauche. Je peux ignorer les swipes mais je ne veux même pas qu'ils se produisent. Est-ce possible ?

J'ai même modifié ce code dans l'exemple que j'ai cité plus haut pour ajouter ItemTouchHelper.RIGHT aux drapeaux de balayage, mais cela n'a rien changé.

@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);
        }
    }

2voto

Rexcirus Points 156

Modifier

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

à

final int swipeFlags = ItemTouchHelper.RIGHT ;

0voto

Dina Points 13

Je suis assez novice en matière d'Android, donc je ne sais pas si cela fonctionnera pour vous, mais c'est ce qui s'est passé pour moi.

J'ai réussi à le faire en modifiant le ItemTouchHelper.SimpleCallback (essayez peut-être d'utiliser le constructeur SimpleCallback au lieu de Callback que vous utilisez actuellement).

Il disait :

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

Aujourd'hui, on peut lire

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

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X