拖放到ListView中

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

我试图ListView在Android中实现拖放。所以当拖动的对象到达边缘时ListView,我正在ListView相关的方向上滚动。问题是,当我们滚动时,有时适配器会View根据需要创建新的s,并且这些'new' View没有ACTION_DRAG_STARTED提前收到事件,因此没有收到DragEvent更新。有什么方法可以将事件发送到这些视图?

提问于
用户回答回答于

看看View的来源,我看到:

static final int DRAG_CAN_ACCEPT              = 0x00000001;
int mPrivateFlags2;

boolean canAcceptDrag() {
    return (mPrivateFlags2 & DRAG_CAN_ACCEPT) != 0;
}

mPrivateFlags2是包私有的,不会被SDK公开。但是,您应该能够通过执行以下操作在子类中对其进行更改:

try {
    Field mPrivateFlags2 = this.getClass().getField("mPrivateFlags2");
    int currentValue = mPrivateFlags2.getInt(this);
    mPrivateFlags2.setInt(this, currentValue | 0x00000001);
} catch (Exception e) {
}
用户回答回答于

扫码关注云+社区

领取腾讯云代金券