DragAndDrop Extension

DragAndDrop Extension

This Extension allows you to Drag and Drop Visible Components(including entire arrangements) into designated arrangements.

Special Thanks to my beta testers: @yusufcihan, @Shreyash, @Peter, @Boban, @Italo, @Kanishka_Developer









.aia(s) & .aix:

DragAndDrop.aia (130.7 KB)

DragAndDropMath.aia (14.6 KB)

com.appybuilder.kennicholsandroid.DragAndDrop.aix (12.1 KB)

Special Thanks to @papavasileiou87 for sponsoring and Beta testing these new methods!

com.appybuilder.kennicholsandroid.DragAndDropv2.aix (12.6 KB)


It has been an honor to test this extension, @Ken! Working with you is an absolute pleasure, and I hope to test more extensions from you in the future.


Whats the use of this extension?

How to use it?

It says in the description: It allows to drag and drop components in between arrangements.

By also creating dynamic components, you can for example allow the user to create their own forms.
Another use could be a reservations system which allows to simply drag and drop the reservation from one table/room/spot to another in case that is needed.
Also educational games, puzzles, dynamic quizzes, workers management, etc.

Hundreds of applications really.


Oh my, amazing job! Keep up the excellent work!!!


Ken, you are a genius!!!


amazing extension.
i never see this type extention before.


Good work.
Can you provide a tutorial explaining how to implement the extension inside the apps?

Another thing, when I use it with the appybuilder, it gives me an error message.

1 Like

Don’t use AppyBuilder anymore. Use Kodular.

There is an aia provided with the information.

1 Like

I noticed that there is an extra block that can be deleted without any problem.
I tried it myself.

This block is responsible for registering the components for [drop], while these components will be dragged, not dropped.

Another thing; can you shorten the time the user must touch the component before collecting it? Now, the user must tap the component for one second, can we make that time shorter to be more efficient?

After all, these tiny notices don’t undervalue your great work, …

thank you

No, it is using the standard Android LongClick

This block isn’t required unless you want to drop a Component onto another Component, doing this the newly dropped Component will take the index of the Component it was dropped on,this allows the user to reorder the Components.
Dropping a Component onto an Arrangement gives the Component the highest index in that Arrangement.
Example: If you drop a Component into a Vertical Arrangement that has 4 Components inside it, the newly dropped Component with be 5th and appear at the Bottom regardless of where in the Arrangement you dropped it.

1 Like

Maybe you can an property so you can change if it use click, Long click, or Double click

That would be breaking the standardization in Android’s gestures. “Touch, hold, drag” is the gesture used across the system, I don’t see why you’d want to implement a gesture system the user will have to invest time and brainpower to understand. :sweat_smile: I mean it’ll affect the UX badly.


Building on what @Kanishka_Developer said:

If I used Click I’d need to Override the existing Click method and it would create multiple issues.
I don’t think double click is a good idea. There’s no existing method for this and we would need to use a timer and again it would create issues.


Hello. I found an issue in your extension. When you try it to move a vertical arrangement into an other vertical arrangement, it just disappears.
The same thing if you move horizontal arrangement into an other horizontal arrangement.
Vertical into horizontal works, and vice versa.

Maybe this info is useful for you…

I am unable to duplicate this issue.
All 3 of the Arrangements in the following video are VerticalArrangements:

Oh, in my case doesnt work… Look my blocks:
Maybe the problem is the extension VerticalScrollHandler o the Scroll Arrangement. I dont know
Sorry and thanks.

1 Like

I haven’t tested it with a Scroll Arrangement…
That may be the issue.

I’ll try it when I can and report back.

very useful extension! I have added it to a project but I am facing a difficulty. how can i take the position of the component so that the next time the application is opened it can remember where it is?

1 Like