Unbound-Drag-Drop/README.md
2024-06-26 09:42:33 +02:00

2.9 KiB

Unbound Drag & Drop

Maven Central Version License: MIT

Unbound Drag & Drop.webm

Unbound Drag & Drop is a versatile and user-friendly feature designed to enhance your Android applications by enabling drag and drop functionality across multiple RecyclerViews. Unlike the default behavior, which restricts drag and drop actions within a single RecyclerView, Unbound Drag & Drop allows users to seamlessly move items between different RecyclerViews, providing a more flexible and intuitive user experience.

Features

  • Multi-RecyclerView Drag and Drop: Easily drag and drop items between multiple RecyclerViews.
  • Customizable and Extensible: Adapt the feature to fit your specific needs with customizable options and extensible components.
  • Smooth and Intuitive User Experience: Enhance the interactivity of your app with a user-friendly drag and drop interface.
  • Easy Integration: Quickly integrate Unbound Drag & Drop into your existing Android projects with minimal setup.

Installation

To include Unbound Drag & Drop in your project, add the following dependency to your build.gradle file:

implementation("dev.adriankuta:unbound-drag-drop:0.0.2")

Usage

Setup

Step 1: Implement the Callback

Create a class that extends DragDropHelper.Callback to handle drag and drop events.

class MyDragDropCallback : DragDropHelper.Callback() {
    override fun onMove(
        recyclerView: RecyclerView,
        viewHolder: RecyclerView.ViewHolder,
        targetRecyclerView: RecyclerView,
        targetViewHolder: RecyclerView.ViewHolder?
    ): Boolean {
        // Handle the move logic here
        return true
    }

    override fun onMoved(
        recyclerView: RecyclerView,
        viewHolder: RecyclerView.ViewHolder,
        targetRecyclerView: RecyclerView,
        targetViewHolder: RecyclerView.ViewHolder?
    ) {
        // Handle post-move logic here
    }
}

Step2: Attach DragDropHelper to RecyclerView

In your Activity or Fragment, attach DragDropHelper to your RecyclerView.

val recyclerView: RecyclerView = findViewById(R.id.recycler_view)
val dragDropHelper = DragDropHelper(MyDragDropCallback())
dragDropHelper.attachToRecyclerView(recyclerView)

See example in app module.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.