【问题标题】:How to implement drag-and-drop between lists in android?如何在android中实现列表之间的拖放?
【发布时间】:2011-06-01 18:21:12
【问题描述】:

我正在尝试让用户可以从一个列表视图中拖动一个文本视图,然后将其拖放到另一个列表视图中,但我发现这非常困难。
到目前为止,我发现的最大问题是 onTouchEvents 似乎只能在 ACTION_DOWN 事件起源的视图中听到。我将单击一个列表并在那里听到 ACTION_DOWN。然后我将拖到列表之外并放开另一个列表。但是,无论我要去哪里,都只会为原始列表调用 onTouchEvent。我认为这就像在接收列表中侦听 ACTION_UP 事件一样简单;但是即使我不在原始列表中,也会在原始列表中调用它。

到目前为止,我所拥有的有点混乱。当 onLongTouchEvent 被调用时,列表告诉主 Activity 开始拖动一个 draggableTextView(它有一个 moveTo 方法)。由于在原始列表上继续调用移动事件,因此我不断设置此 draggableTextView 的位置。但我无法将其插入另一个列表,因为我无法弄清楚我要放手的是什么。

【问题讨论】:

  • 为什么在同一个活动/视图中有 2 个列表视图?
  • 了解 AOSP Launcher 应用程序如何在不同视图中拖放可能会有所帮助。来源在这里:android.git.kernel.org/?p=platform/packages/apps/…
  • 这不是手机,而是安卓平板。我没有用于 pad 的模拟器,所以我在手机上的一项活动中使用两个列表即兴创作。

标签: java android listview drag-and-drop


【解决方案1】:

是的,你是对的,这不是一件容易的事。但是有可能:您可以查看 commonsguy 的 cwac-touchlist 示例。

【讨论】:

  • 作为仅供参考,TouchListView 在列表之间不起作用。这只是为了在列表中排序项目。它的代码是从 AOSP 中的音乐应用程序中挑选出来的,坦率地说,我大部分都不懂。列表中的拖放是一个非常受欢迎的请求,我花时间删除了该代码并使其具有一定的可重用性。不过,我不知道这是否是一个很好的拖放示例。
  • @CommonsWare,你是对的——我的误解。留在一个列表中(在活动/视图中)进行拖放会更容易。
猜你喜欢
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
相关资源
最近更新 更多