深入了解Android的ItemTouchHelper

时间:2015-06-12 06:33:21

标签: android android-recyclerview

Private Sub txtTotal_Change() txtTotal.Value = CInt(txtKas) + CInt(txtInvestasi) + CInt(txtDanaTerbatas) + CInt(txtBruto) + ... End Sub 支持库的22.2版中,Google引入了recyclerview-v7以简化项目的拖放和滑动。

在我的ItemTouchHelper中,我想仅在适配器项目的RecyclerView /部分上启用这些功能,而不是完整项目。有没有办法将View的范围限制在特定目标范围内?或者,当调用ItemTouchHelperView时,可以获取被触动的ItemTouchHelper.onMoved(),以便能够过滤允许的ItemTouchHelper.onSwiped()吗?

2 个答案:

答案 0 :(得分:0)

onMove方法有一个RecyclerView.ViewHolder viewHolder参数。 viewHolder.itemView应该是触动的观点。如果您需要移动视图,请将其移至目标对象,并让onMove方法返回true其他false

public abstract boolean onMove (RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target)


Parameters
recyclerView    The RecyclerView to which ItemTouchHelper is attached to.
viewHolder  The ViewHolder which is being dragged by the user.
target  The ViewHolder over which the currently active item is being dragged.

答案 1 :(得分:0)

您可以使用ItemTouchHelper.startDrag(RecyclerView.ViewHolder)手动启动拖动。

您的ItemTouchHelper.Callback应该从isLongPressDragEnabled()返回false。然后,您可以在interface中创建一个RecyclerView.Adapter,让Fragment / Activity了解您的"句柄&#34上的长按; View

要查看此示例,请查看我的ItemTouchHelper示例项目:

https://github.com/iPaulPro/Android-ItemTouchHelper-Demo

RecyclerListAdapterOnStartDragListener通知RecyclerListFragment应该启动拖动(调用startDrag())。