1
1
package co .paulburke .android .itemtouchhelperdemo .helper ;
2
2
3
+ import android .graphics .Canvas ;
3
4
import android .support .v7 .widget .RecyclerView ;
4
5
import android .support .v7 .widget .helper .ItemTouchHelper ;
5
6
6
7
/**
7
8
* An implementation of {@link ItemTouchHelper.Callback} that enables basic drag & drop and
8
9
* swipe-to-dismiss. Drag events are automatically started by an item long-press.<br/>
9
10
* </br/>
10
- * Expects the <code>RecyclerView.Adapter</code> to react to {@link
11
+ * Expects the <code>RecyclerView.Adapter</code> to listen for {@link
11
12
* ItemTouchHelperAdapter} callbacks and the <code>RecyclerView.ViewHolder</code> to implement
12
13
* {@link ItemTouchHelperViewHolder}.
13
14
*
@@ -53,6 +54,17 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int i) {
53
54
mAdapter .onItemDismiss (viewHolder .getAdapterPosition ());
54
55
}
55
56
57
+ @ Override
58
+ public void onChildDraw (Canvas c , RecyclerView recyclerView , RecyclerView .ViewHolder viewHolder , float dX , float dY , int actionState , boolean isCurrentlyActive ) {
59
+ super .onChildDraw (c , recyclerView , viewHolder , dX , dY , actionState , isCurrentlyActive );
60
+
61
+ if (actionState == ItemTouchHelper .ACTION_STATE_SWIPE ) {
62
+ final float itemWidth = (float ) viewHolder .itemView .getWidth ();
63
+ final float alpha = 1.0f - Math .abs (dX ) / itemWidth ;
64
+ viewHolder .itemView .setAlpha (alpha );
65
+ }
66
+ }
67
+
56
68
@ Override
57
69
public void onSelectedChanged (RecyclerView .ViewHolder viewHolder , int actionState ) {
58
70
if (actionState != ItemTouchHelper .ACTION_STATE_IDLE ) {
@@ -67,6 +79,8 @@ public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionStat
67
79
public void clearView (RecyclerView recyclerView , RecyclerView .ViewHolder viewHolder ) {
68
80
super .clearView (recyclerView , viewHolder );
69
81
82
+ viewHolder .itemView .setAlpha (1.0f );
83
+
70
84
ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder ) viewHolder ;
71
85
itemViewHolder .onItemClear ();
72
86
}
0 commit comments