I have a RecyclerView
with a working ItemTouchHelper
. Everything works great, but I am wondering if there is a way I can detach the ItemTouchHelper
from the RecyclerView
without re-creating the list? For fun, this is the code I'm using to attach:
ItemTouchHelper.Callback callback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT)
{
...
};
mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(mPasswordList);
Ideally, I'd like to check a preference in say onResume()
of the Activity this RecyclerView
lives in and detach the ItemTouchHelper
based on that.
My original motivation for this was to allow the user the ability to disable swipe actions on list items if they so choose. I assumed the way to do this was to detach the ItemTouchHelper
from the RecyclerView
. I have now found the ItemTouchHelper.SimpleCallback
has the following method available to override:
@Override
public boolean isItemViewSwipeEnabled()
{
return mSwipable;
}
So, returning the correct state here effectively turns off the swipe handling. I hope this helps someone in the future.