24

我有RecyclerView一个工作ItemTouchHelper。一切都很好,但我想知道是否有一种方法可以在不重新创建列表的情况下将其ItemTouchHelper从列表中分离出来?RecyclerView为了好玩,这是我用来附加的代码:

ItemTouchHelper.Callback callback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT)
{
    ...
};
mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(mPasswordList);

理想情况下,我想检查一下onResume()对活动的偏好,并在此基础上RecyclerView分离活动。ItemTouchHelper

4

3 回答 3

32

您可以通过将 recyclerview 设置为 null 来将 ItemTouchHelper 从 RecyclerView 中分离出来:

mItemTouchHelper.attachToRecyclerView(null);
于 2016-03-27T11:23:52.163 回答
25

我最初的动机是让用户能够禁用列表项上的滑动操作,如果他们愿意的话。我认为这样做的方法是ItemTouchHelperRecyclerView. 我现在发现ItemTouchHelper.SimpleCallback有以下方法可以覆盖:

@Override
public boolean isItemViewSwipeEnabled()
{
    return mSwipable;
}

因此,在这里返回正确的状态有效地关闭了滑动处理。我希望这对将来的某人有所帮助。

于 2016-02-11T17:24:41.370 回答
0

对我来说,禁用整个ItemTouchHelper附加到RecyclerView刚刚设置它null

mItemTouchHelper = null;

并重新启用,将其设置为它的值

mItemTouchHelper = new ItemTouchHelper(callback);
于 2021-05-14T12:44:18.710 回答