如何在Recycler视图中将项目从一个区域切换到另一个区域,反之亦然?

问题描述:

我有一个RecyclerView,我想显示RecyclerView两节。第一次部分将是空的,我想将项目从第二部分拖到第一部分。当项目被添加到第一部分,它应该从第二部分删除,反之亦然。如何在Recycler视图中将项目从一个区域切换到另一个区域,反之亦然?

请帮助我的朋友。 RecyclerView

+0

@Abdul,嘿请帮忙我如果你对此有任何想法。 – Vishal

+0

我解决你的问题,看我的答案.. –

您可以使用以下链接:

https://github.com/cymcsg/UltimateRecyclerView

https://github.com/wasabeef/recyclerview-animators

使用这个任何一个。我希望它能帮助你。

导入您的项目中的lib。

+0

这是我的工作? – Vishal

您应该使用RecyclerView.ItemDecoration类中的ItemTouchHelper。 我刚刚完成的行为你愿意按照本教程: https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.p6vykzstq

试试这个,它与我曾在我的应用程序,

在您的适配器类把这个下面的代码,

这里将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的名称。

按照此步骤,如果你发现任何问题,或者你不能SWIP的项目,然后直接告诉我...

看到这个GIF

enter image description here

+0

@Vishal你也可以使用这个解决方案,因为你对这个问题有同样的问题..... :-) :-) –

+0

你好Bhumika,我怎么能在组中分类? – Vishal

+0

@vishal哪个组? –