我正在尝试在android(ICS)中实现拖放GridView
,但是当我将它拖到item
屏幕边缘时,GridView
它不会滚动。我怎样才能实现这个功能?
问问题
2340 次
1 回答
2
首先,如果您不需要支持 android 2.x (API <11),那么这个Andorid 拖放教程就是您要找的。我从未尝试过这种方式,因为我必须在 2.x 上实现它,但我看了看它似乎很简单。
要实现自动滚动,我想您可以在网格视图上使用ACTION_DRAG_EXITED或ACTION_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 回答