我有RecyclerView
,我希望将RecyclerView
显示为两个部分。第一部分第一部分是空的,我想把第二部分的项目拖到第一部分。当项目被添加到第一部分时,它应该从第二部分删除,反之亦然。
答案 0 :(得分:3)
试试这个,它在我的应用程序中与我合作,
在您的适配器类中,将此代码放在
下面此处MessageList是Arraylist的名称,
public void swap(int firstPosition, int secondPosition)
{
Collections.swap(MessageList, firstPosition, secondPosition);
notifyItemMoved(firstPosition, secondPosition);
}
现在分别添加这个小班,
此处
Adapter
是适配器类的名称,其中包含您的适配器名称
public class MovieTouchHelper extends ItemTouchHelper.SimpleCallback {
Aadapter recycleAdapter;
public MovieTouchHelper(Aadapter recycleAdapter) {
super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT);
this.recycleAdapter = recycleAdapter;
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
recycleAdapter.swap(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
recycleAdapter.remove(viewHolder.getAdapterPosition());
}
}
然后在您定义了recycleview的mainActivity中
ItemTouchHelper.Callback callback = new MovieTouchHelper(adapter);
ItemTouchHelper helper = new ItemTouchHelper(callback);
helper.attachToRecyclerView(rv_list);
此处
rv_list
是recycleview的名称。
按照以下步骤操作,如果您发现任何问题或者无法转换项目,请直接告诉我......
参见此GIF
答案 1 :(得分:0)
您可以使用以下链接:
https://github.com/cymcsg/UltimateRecyclerView
https://github.com/wasabeef/recyclerview-animators
使用其中任何一个。我希望它会对你有所帮助。
在项目中导入lib。
答案 2 :(得分:0)
您应该使用ItemTouchHelper
课程中的RecyclerView.ItemDecoration
。
我只是按照本教程完成了你愿意的行为:
https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.p6vykzstq