【问题标题】:Android: How to Auto Scroll a GridView vertically on dragging an item to the edgeAndroid:如何在将项目拖动到边缘时自动垂直滚动 GridView
【发布时间】:2012-09-02 12:42:14
【问题描述】:

我正在尝试在 android (ICS) 中实现对 GridView 的拖放,但是当我将 item 拖动到屏幕边缘时,GridView 不会滚动。如何实现此功能?

【问题讨论】:

  • 我从未在 gridviews 上工作过,但您可以覆盖 gridview 上的 onTouchListerner,如果 x 坐标到达边缘,您可以继续下一个字段。可能有更好的选择。
  • 您能否发布一些有关如何拖动GridView 元素的代码?

标签: android gridview


【解决方案1】:

首先,如果您不需要支持 android 2.x (API Andorid Drag and Drop tutorial 就是您要找的。我从来没有尝试过这种方式,因为我必须在 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 事件给你的位置上绘制的位图。

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

还有,我今天还没有检查,但也许你可以尝试 google 一下,看看是否有人花时间实现它并将其开源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多