Android Design Patterns and Best Practice by Mew Kyle

Android Design Patterns and Best Practice by Mew Kyle

Author:Mew, Kyle [Mew, Kyle]
Language: eng
Format: azw3, pdf
Publisher: Packt Publishing
Published: 2016-12-26T05:00:00+00:00


Adding swipe and dismiss actions

It is unlikely that we would need swipe and dismiss behavior in this particular app, as the lists are short and there is little to be gained by allowing users to edit them. However, so that we can see how this important and useful function is applied, we will implement it here even though we won't be including it in the final design.

Swiping, as well as dragging and dropping, is largely managed by the ItemTouchHelper, which is a type of RecyclerView.ItemDecoration. The callbacks provided for this class allow us to detect item movement and direction and to intercept these actions and respond to them in code.

As you can see here, there are just a few steps to implementing swipe and dismiss behavior:

Firstly, our list is now going to change length, so remove the line recyclerView.setHasFixedSize(true); or set it to false.

It is always a good idea to keep our onCreate() methods as simple as possible, as there can often be a great deal going on there. We will create a separate method to initialize our item touch helper and call it from onCreate(). Here is the method:private void initItemTouchHelper() { ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder viewHolder1) { return false; } @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { int position = viewHolder.getAdapterPosition(); adapter.removeItem(position); } }; ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback); itemTouchHelper.attachToRecyclerView(recyclerView); }



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.