|
3 | 3 | import android.os.Bundle; |
4 | 4 | import android.support.annotation.Nullable; |
5 | 5 | import android.support.v7.widget.RecyclerView; |
| 6 | +import android.support.v7.widget.helper.ItemTouchHelper; |
6 | 7 | import android.view.View; |
7 | 8 |
|
| 9 | +import java.util.Collections; |
8 | 10 | import java.util.List; |
9 | 11 |
|
10 | 12 | import io.micro.adt.R; |
@@ -37,8 +39,27 @@ public void onClick(View v) { |
37 | 39 | }); |
38 | 40 |
|
39 | 41 | RecyclerView recyclerView = findView(R.id.rv_developer_kit); |
40 | | - List<DevItem> devItems = DevOptFactory.createAll(); |
| 42 | + final List<DevItem> devItems = DevOptFactory.createAll(); |
41 | 43 | DevKitAdapter adapter = new DevKitAdapter(devItems); |
42 | 44 | recyclerView.setAdapter(adapter); |
| 45 | + |
| 46 | + // 实现拖动排序效果 |
| 47 | + int dragDirs = ItemTouchHelper.LEFT | ItemTouchHelper.UP | ItemTouchHelper.RIGHT | ItemTouchHelper.DOWN; |
| 48 | + int swipeDirs = 0; |
| 49 | + new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(dragDirs, swipeDirs) { |
| 50 | + @Override |
| 51 | + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { |
| 52 | + int fromPosition = viewHolder.getAdapterPosition(); |
| 53 | + int targetPosition = target.getAdapterPosition(); |
| 54 | + Collections.swap(devItems, fromPosition, targetPosition); |
| 55 | + recyclerView.getAdapter().notifyItemMoved(fromPosition, targetPosition); |
| 56 | + return true; |
| 57 | + } |
| 58 | + |
| 59 | + @Override |
| 60 | + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { |
| 61 | + // no-op |
| 62 | + } |
| 63 | + }).attachToRecyclerView(recyclerView); |
43 | 64 | } |
44 | 65 | } |
0 commit comments