J'essaie d'ajouter la fonctionnalité de glisser pour supprimer ainsi que d'afficher la feuille inférieure si l'élément RecyclerView est appuyé longuement. J'utilise ItemTouchHelper.SimpleCallback
pour swipe to delete (glisser pour supprimer) et ItemTouchListener
pour afficher une fenêtre contextuelle en cas d'appui long sur un élément. Le problème est que lorsque je fais glisser l'élément à supprimer, il détecte également l'appui long. Ce que je veux, c'est qu'il ne tienne pas compte de l'appui long lorsque l'élément est balayé. J'ai une classe ItemTouchHelper qui étend Simplecallback pour le swipe to delete. Le code suivant permet d'attacher la vue recyclée à la fonction "swipe to delete".
ItemTouchHelper.SimpleCallback itemTouchHelperCallback = new RecyclerItemTouchHelper(0, ItemTouchHelper.LEFT, this);
new ItemTouchHelper(itemTouchHelperCallback).attachToRecyclerView(recyclerView);
Le code suivant permet d'ajouter un récepteur pour l'événement de clic long.
recyclerView.addOnItemTouchListener(new NotesRecyclerTouchListener(getApplicationContext(), recyclerView, new NotesRecyclerTouchListener.ClickListener() {
@Override
public void onLongClick(View view, int position) {
Note note = notesList.get(position);
Toast.makeText(getApplicationContext(), note.getTitle() + " is log pressed!", Toast.LENGTH_SHORT).show();
View sheetView = MainActivity.this.getLayoutInflater().inflate(R.layout.view_bottom_sheet_dialog, null);
BottomSheetDialog dialog = new BottomSheetDialog(MainActivity.this);
dialog.setContentView(sheetView);
dialog.show();
}
}));