Drag and Drop Between Two View Modes

I created 2 Horizontal recycleView. It works great. I need the drag and drop functionality between the element inside each recycleView, as well as the drag between the two recycleView elements. What have I done now -

private RecyclerView mRecyclerViewCompletedTask; private RecyclerView.Adapter mAdapterCompletedTask; private RecyclerView.LayoutManager mLayoutManagerCompletedTask; private static String LOG_TAG = "RecyclerViewActivity"; private RecyclerView mRecyclerViewInCompleteTask; private RecyclerView.Adapter mAdapterInCompleteTask; private RecyclerView.LayoutManager mLayoutManagerInCompleteTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); mRecyclerViewCompletedTask = (RecyclerView) findViewById(R.id.my_recycler_view_completed_task); mRecyclerViewCompletedTask.setHasFixedSize(true); mLayoutManagerCompletedTask = new LinearLayoutManager(this); mRecyclerViewCompletedTask.setLayoutManager(mLayoutManagerCompletedTask); mAdapterCompletedTask = new MyRecyclerViewAdapterCompletedTask(getDataSet()); mRecyclerViewCompletedTask.setAdapter(mAdapterCompletedTask); LinearLayoutManager layoutManager1 = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); mRecyclerViewCompletedTask.setLayoutManager(layoutManager1); mRecyclerViewInCompleteTask = (RecyclerView) findViewById(R.id.my_recycler_view_incomplete_task); mRecyclerViewInCompleteTask.setHasFixedSize(true); mLayoutManagerInCompleteTask = new LinearLayoutManager(this); mRecyclerViewInCompleteTask.setLayoutManager(mLayoutManagerInCompleteTask); mAdapterInCompleteTask = new MyRecyclerViewAdapterInCompleteTask(getDataSet()); mRecyclerViewInCompleteTask.setAdapter(mAdapterInCompleteTask); LinearLayoutManager layoutManager2 = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); mRecyclerViewInCompleteTask.setLayoutManager(layoutManager2); } @Override protected void onResume() { super.onResume(); ((MyRecyclerViewAdapterCompletedTask) mAdapterCompletedTask).setOnItemClickListener(new MyRecyclerViewAdapterCompletedTask.MyClickListener() { @Override public void onItemClick(int position, View v) { Log.i(LOG_TAG, " Clicked on Item " + position); } }); ((MyRecyclerViewAdapterInCompleteTask) mAdapterInCompleteTask).setOnItemClickListener(new MyRecyclerViewAdapterInCompleteTask.MyClickListener() { @Override public void onItemClick(int position, View v) { Log.i(LOG_TAG, " Clicked on Item " + position); } }); } private ArrayList<DataObject> getDataSet() { ArrayList results = new ArrayList<DataObject>(); for (int index = 0; index < 20; index++) { DataObject obj = new DataObject("Some Primary Text " + index, "Secondary " + index); results.add(index, obj); } return results; } 

Set up this library and get what I want. Link - https://github.com/woxblom/DragListView

+5
source share
2 answers

If you are still interested in a simple solution, see my code on GitHub . It shows how to Drag and Drop between two RecyclerView s.

bdn1I.gif

+4
source

Set up this library and get what I want. Link - https://github.com/woxblom/DragListView

What I updated -

As you can see, vertical recyclerView uses a layout manager so you can do it with Gird or Horizontal recylerView. In my case, I have 2 recyclerView and 1 GridView. Also adjusted some add-ons and layout.

0
source

Source: https://habr.com/ru/post/1234984/


All Articles