Skip to content

Commit ed47e92

Browse files
committed
Add 开发者选项Item拖动排序
1 parent 04fa4f2 commit ed47e92

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

app/src/main/java/io/micro/adt/module/dev/DeveloperKitFragment.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import android.os.Bundle;
44
import android.support.annotation.Nullable;
55
import android.support.v7.widget.RecyclerView;
6+
import android.support.v7.widget.helper.ItemTouchHelper;
67
import android.view.View;
78

9+
import java.util.Collections;
810
import java.util.List;
911

1012
import io.micro.adt.R;
@@ -37,8 +39,27 @@ public void onClick(View v) {
3739
});
3840

3941
RecyclerView recyclerView = findView(R.id.rv_developer_kit);
40-
List<DevItem> devItems = DevOptFactory.createAll();
42+
final List<DevItem> devItems = DevOptFactory.createAll();
4143
DevKitAdapter adapter = new DevKitAdapter(devItems);
4244
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);
4364
}
4465
}

0 commit comments

Comments
 (0)