2

我正在尝试在android(ICS)中实现拖放GridView,但是当我将它拖到item屏幕边缘时,GridView它不会滚动。我怎样才能实现这个功能?

4

1 回答 1

2

首先,如果您不需要支持 android 2.x (API <11),那么这个Andorid 拖放教程就是您要找的。我从未尝试过这种方式,因为我必须在 2.x 上实现它,但我看了看它似乎很简单。

要实现自动滚动,我想您可以在网格视图上使用ACTION_DRAG_EXITEDACTION_DRAG_LOCATION并在您看到该位置靠近视图边界时手动触发滚动。

如果您必须在 2.x 上实现它,那么它会变得更加困难,您基本上需要自己实现所有 DRAG 事件或其中的一个子集。我用 ListView 做过一次,你要做的是:

  • 覆盖 gridView touchEvent。
  • 使用动作 ACTION_MOVE、ACTION_DOWN、ACTION_UP 来触发 Drag 事件

在 GridView 项目上启用绘图缓存 ( setDrawingCacheEnabled ) 并使用getDrawingCache()复制 DRAG_START 上的视图位图。您需要做的是使用在 GridView 顶部的 ACTION_MOVE 事件给您的位置绘制的位图。

这并不容易,但如果你花时间,你可以设法得到它。

更重要的是,我今天还没有检查,但也许你可以尝试谷歌一下,看看是否有人花时间实现它并发布它开源。

于 2012-09-28T09:23:33.030 回答