Implement Drag & Drop in Gingerbread

2019-06-17 22:07发布

问题:

I need to know how I can implement Drag & Drop in Android for the Gingerbread version. As I know Gingerbread doesn't support that by default.

What I have coded: a ViewGroup class to hold dynamic added child, each child should after a long click be able to get moved through a finger tap/move. To solve this, i have a OnLongClickListener attached to each View's child and my ViewGroup have implemented both the methods onTouch() to get the down/up/move events and the method onLongClick() to response to the long click on each child.

Now my problem is as follows: I long tap a child, I can move it and can end the action through the ACTION_UP event. But, I can't long tap this child again - is there a way or library that can handle that?

I think, I don't need a really D&D library/function because I only will order some icons in this ViewGroup - each child gets added to the ViewGroup via code, so I don't have a really DropTarget I think.

回答1:

This example may help you. This example has a complete drag and drop framework for pre 3.0. And also the feature you are requesting with "dragging a dropped child" as default.



回答2:

Look at the project at https://github.com/thquinn/DraggableGridView. This code really helped me out.

Follow the onLayout() and the onTouch() in the DraggableGridView class. Let me know if this was/wasn't helpful. It's very similar to your situation in regards to ViewGroup and adding views.