如何控制滑动以关闭 RecyclerView 中的单个列表项

How to control swipe to dismiss for individual list item in RecyclerView

我正在使用两个 ItemTouchHelper 对象,一个用于 LEFT 滑动和相应的操作,另一个用于 RIGHT 滑动和相应的操作操作。在我的列表中,很少项目必须只启用左滑动,很少项目必须只启用右滑动。

但问题是,如果我将 RecyclerView 附加到两个 Helper 对象,那么每个对象都可以在两个方向上滑动。

ItemTouchListener 中是否有任何方法可以控制滑动以关闭的单个列表项?

P.S. not interested in external libraries

使用ItemTouchHelper.Callback.getMovementFlags(...)(或者ItemTouchHelper.SimpleCallback.getSwipeDirs(...))。它获取 ViewHolder 作为参数。

RecyclerView.Adapter.onBindViewHolder(...) 中的 ViewHolder 上设置一个标志,如果表示的项目可以向左或向右滑动或 none。在上述方法中查询该标志和 return 一个相应的值。