调用startDrag后注册OnDragListener

时间:2014-08-13 12:06:53

标签: android drag-and-drop

我正在使用Android Drag and Drop框架。我想在调用startDrag方法后动态地向我的布局添加另一个View。问题是新添加的View没有收到拖动回调。我能想到的唯一方法是在startDrag之前添加视图,但要使其透明,这似乎是一个黑客攻击。有没有更好的方法在startDrag之后动态添加Views,以便它们接收正在进行的拖动的拖动事件?

以下是我所谈论的示例代码段:

case DragEvent.ACTION_DRAG_ENTERED:
    View v = new View(context);
    v.setOnDragListener(myOnDragListener);
    container.addView(v);
    break;

2 个答案:

答案 0 :(得分:0)

我在这里找到了问题的解决方案:https://stackoverflow.com/a/15097552/396106

将视图更改为vis / invis的可见性黑客将触发要使用的新视图。

答案 1 :(得分:0)

在视图上调用invalidate()以重绘它

参考下文:

case DragEvent.ACTION_DRAG_ENTERED:
    View v = new View(context);
    v.setOnDragListener(myOnDragListener);
    container.addView(v);
    container.invalidate()
    break;